示例#1
0
        public bool Restore()
        {
            if (null == mRmem)
            {
                return(false);
            }

            //Pop the addtional stack elements added
            int newStackCount = mRmem.Stack.Count;

            if (newStackCount > mRestorePoint)
            {
                mRmem.PopFrame(newStackCount - mRestorePoint);
            }

            //Restore the old stack elements that is above the frame pointer
            int count = mStack.Count;

            for (int i = 0; i < count; i++)
            {
                mRmem.Push(mStack[count - 1 - i]);
            }

            return(true);
        }