* src/vm/jit/stack.h (REQUIRE): Avoid duplication of exception throwing code.
authoredwin <none@none>
Wed, 22 Mar 2006 17:14:07 +0000 (17:14 +0000)
committeredwin <none@none>
Wed, 22 Mar 2006 17:14:07 +0000 (17:14 +0000)
* src/vm/jit/stack.c (analyse_stack): Added label throw_stack_underflow
for the REQUIRE macro.

src/vm/jit/stack.c
src/vm/jit/stack.h

index 63ced1cff67d7405c0fb5bc2573cfca5939cba47..ab8d73d072680bbdcf2b2f7dcb6ff9a55f9eed7b 100644 (file)
@@ -30,7 +30,7 @@
             Christian Thalinger
             Christian Ullrich
 
-   $Id: stack.c 4606 2006-03-15 04:43:25Z edwin $
+   $Id: stack.c 4674 2006-03-22 17:14:07Z edwin $
 
 */
 
@@ -2393,6 +2393,11 @@ methodinfo *analyse_stack(methodinfo *m, codegendata *cd, registerdata *rd)
        /* just return methodinfo* to signal everything was ok */
 
        return m;
+
+throw_stack_underflow:
+       *exceptionptr =
+               new_verifyerror(m, "Unable to pop operand off an empty stack");
+       return NULL;
 }
 
 
index e668d29ec9931b2592f0f447b39fd1c388811e5b..3095180fcc8ee4d8b969542f7a71f9fbc1fd5360 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes: Christian Ullrich
 
-   $Id: stack.h 4603 2006-03-15 00:06:03Z edwin $
+   $Id: stack.h 4674 2006-03-22 17:14:07Z edwin $
 
 */
 
 
 #define REQUIRE(num) \
     do { \
-        if (stackdepth < (num)) { \
-            *exceptionptr = \
-                new_verifyerror(m, "Unable to pop operand off an empty stack"); \
-            return NULL; \
-        } \
-    } while(0)
-
+        if (stackdepth < (num)) \
+                       goto throw_stack_underflow; \
+       } while (0)
+          
 #define REQUIRE_1     REQUIRE(1)
 #define REQUIRE_2     REQUIRE(2)
 #define REQUIRE_3     REQUIRE(3)