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

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

static private HandleArgs ( Vm vm ) : void
vm Vm
Результат void
        static void HandleArgs(Vm vm)
        {
            var instruction = vm.CurrentInstruction ();
            var argCount = (int)instruction.Arguments;
            if (argCount > 0) {
                Value? returnAddress = null;
                if (vm.stack.Top ().Kind == Value.Kinds.ReturnAddress) {
                    returnAddress = vm.stack.PopTop ();
                }
                var values = vm.currentEnvironment.Frame.Values;
                Array.Copy (
                    vm.stack.Storage, vm.stack.Count - argCount,
                    values, 0, argCount);
                vm.stack.PopMany (argCount);
                if (returnAddress.HasValue) {
                    vm.stack.Push (returnAddress.Value);
                }
            }
            vm.programCounter++;
        }
Vm