Shovel.Vm.Vm.FinishPrimitiveCall C# (CSharp) Метод

FinishPrimitiveCall() статический приватный Метод

static private FinishPrimitiveCall ( Vm vm, int numArgs, bool saveReturnAddress, Value result ) : void
vm Vm
numArgs int
saveReturnAddress bool
result Value
Результат void
        static void FinishPrimitiveCall(
            Vm vm, int numArgs, bool saveReturnAddress, Value result)
        {
            vm.stack.PopMany (numArgs);
            if (saveReturnAddress) {
                vm.programCounter ++;
            } else {
                var maybeRa = vm.stack.PopTop ();
                if (maybeRa.Kind == Value.Kinds.ReturnAddress) {
                    vm.ApplyReturnAddress (maybeRa.ReturnAddressValue);
                } else {
                    Utils.Panic ();
                }
            }
            vm.stack.Push (result);
            vm.IncrementCells (1);
        }
Vm