Bugfix for arguments_num in BUILTINx commands
authortwisti <none@none>
Sun, 23 Feb 2003 18:25:25 +0000 (18:25 +0000)
committertwisti <none@none>
Sun, 23 Feb 2003 18:25:25 +0000 (18:25 +0000)
jit/stack.c
src/vm/jit/stack.c

index 290f0b75abbdfbe0f13620b0c9cfe73d60233e44..6180268a27a287edf99ff033c76ebf1ad0336ba0 100644 (file)
@@ -1438,19 +1438,30 @@ icmd_lcmp_if_tail:
                                                                curstack->varkind = ARGVAR;
                                                                curstack->varnum = 2;
                                                                }
+                                                       if (3 > arguments_num) {
+                                                               arguments_num = 3;
+                                                       }
                                                        OP1_0ANY;
+
                                                case ICMD_BUILTIN2:
 builtin2:
                                                        if (! (curstack->flags & SAVEDVAR)) {
                                                                curstack->varkind = ARGVAR;
                                                                curstack->varnum = 1;
                                                                }
+                                                       if (2 > arguments_num) {
+                                                               arguments_num = 2;
+                                                       }
                                                        OP1_0ANY;
+
                                                case ICMD_BUILTIN1:
                                                        if (! (curstack->flags & SAVEDVAR)) {
                                                                curstack->varkind = ARGVAR;
                                                                curstack->varnum = 0;
                                                                }
+                                                       if (1 > arguments_num) {
+                                                               arguments_num = 1;
+                                                       }
                                                        OP1_0ANY;
                                                        copy = curstack;
                                                        while (copy) {
index 290f0b75abbdfbe0f13620b0c9cfe73d60233e44..6180268a27a287edf99ff033c76ebf1ad0336ba0 100644 (file)
@@ -1438,19 +1438,30 @@ icmd_lcmp_if_tail:
                                                                curstack->varkind = ARGVAR;
                                                                curstack->varnum = 2;
                                                                }
+                                                       if (3 > arguments_num) {
+                                                               arguments_num = 3;
+                                                       }
                                                        OP1_0ANY;
+
                                                case ICMD_BUILTIN2:
 builtin2:
                                                        if (! (curstack->flags & SAVEDVAR)) {
                                                                curstack->varkind = ARGVAR;
                                                                curstack->varnum = 1;
                                                                }
+                                                       if (2 > arguments_num) {
+                                                               arguments_num = 2;
+                                                       }
                                                        OP1_0ANY;
+
                                                case ICMD_BUILTIN1:
                                                        if (! (curstack->flags & SAVEDVAR)) {
                                                                curstack->varkind = ARGVAR;
                                                                curstack->varnum = 0;
                                                                }
+                                                       if (1 > arguments_num) {
+                                                               arguments_num = 1;
+                                                       }
                                                        OP1_0ANY;
                                                        copy = curstack;
                                                        while (copy) {