From: brian Date: Sun, 3 Jul 2005 20:35:55 +0000 (+0000) Subject: stack overflow checking X-Git-Url: http://git.megacz.com/?p=org.ibex.classgen.git;a=commitdiff_plain;h=e2cfb2a90a85bcb7a8f6a6a6a6a8c9e0a3d1d371;hp=af3a0876a2d5984da9997331710af0b4b4db7c49 stack overflow checking darcs-hash:20050703203555-24bed-6830336c6205eb9ab4208f81e216f34099de3424.gz --- diff --git a/src/org/ibex/classgen/JSSA.java b/src/org/ibex/classgen/JSSA.java index 92d31f0..c16f5e6 100644 --- a/src/org/ibex/classgen/JSSA.java +++ b/src/org/ibex/classgen/JSSA.java @@ -73,8 +73,14 @@ public class JSSA extends MethodGen implements CGConst { /** JVM stack pointer */ private int sp = 0; - private Expr push(Expr e) { return stack[sp++] = e; } - private Expr pop() { return stack[--sp]; } + private Expr push(Expr e) { + if(sp == stack.length-1) throw new IllegalStateException("stack overflow"); + return stack[sp++] = e; + } + private Expr pop() { + if(sp == 0) throw new IllegalStateException("stack underflow"); + return stack[--sp]; + } // SSA-node classes /////////////////////////////////////////////////////////////////////////////////////////