about summary refs log tree commit diff
path: root/pkg/lang/vm/exec.go
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-08-16 19:49:59 +0000
committerMel <einebeere@gmail.com>2022-08-16 20:12:20 +0000
commit64d438c91ace51bfda7bff50d381b62f5785f72a (patch)
treeea1b6a23a6ad05c040603dd4d00887332391e197 /pkg/lang/vm/exec.go
parent8193e5c590177b91b51acd818e8a365ab6845988 (diff)
downloadjinx-64d438c91ace51bfda7bff50d381b62f5785f72a.tar.zst
jinx-64d438c91ace51bfda7bff50d381b62f5785f72a.zip
Ensure correct argument stack order in all cases
Diffstat (limited to 'pkg/lang/vm/exec.go')
-rw-r--r--pkg/lang/vm/exec.go5
1 files changed, 2 insertions, 3 deletions
diff --git a/pkg/lang/vm/exec.go b/pkg/lang/vm/exec.go
index ade6cc0..34cf444 100644
--- a/pkg/lang/vm/exec.go
+++ b/pkg/lang/vm/exec.go
@@ -836,9 +836,8 @@ func (vm *VM) execCall(argCount uint) error {
 	var err error
 
 	args := make([]value.Value, argCount)
-	for i := 0; i < int(argCount); i++ {
-		args[i], err = vm.stack.Pop()
-		if err != nil {
+	for i := int(argCount - 1); i >= 0; i-- {
+		if args[i], err = vm.stack.Pop(); err != nil {
 			return err
 		}
 	}