public void TickPassedWithNothing() { var stream = new TestTickStream(NumTicks); var tick = Tick.Empty; while (stream.MoveNext(ref tick)) { var x = Process(tick, 0); } Tick Process(Tick tick, int depth) { return(depth == MethodPassingDepth ? tick : Process(tick, depth + 1)); } }
public unsafe void TickPassedAsPointer() { var stream = new TestTickStream(NumTicks); var tick = Tick.Empty; while (stream.MoveNext(ref tick)) { var tickPointer = new TickPointer(&tick); var x = Process(tickPointer, 0); } TickPointer Process(TickPointer tickPointer, int depth) { return(depth == MethodPassingDepth ? tickPointer : Process(tickPointer, depth + 1)); } }