private ZingMethod doPop()
{
if (stackULEs != null)
{
if (stackULEs.Count > 0 && stackULEs.Peek() is UndoPush)
stackULEs.Pop();
else
{
Debug.Assert(topOfStack == savedTopOfStack);
stackULEs.Push(new UndoPop(this, topOfStack));
savedTopOfStack = topOfStack.Caller;
}
}
ZingMethod oldTop = topOfStack;
topOfStack = topOfStack.Caller;
return oldTop;
}