From 29d34750ad40b2addfbc5f20cdab3d4accac157e Mon Sep 17 00:00:00 2001 From: brian Date: Wed, 2 Jun 2004 03:06:15 +0000 Subject: [PATCH] fix npe when putting to cascade in a normal func darcs-hash:20040602030615-24bed-d8b7b9085f72ddff78c2a5b9fe55cf4b39485f6c.gz --- src/org/ibex/js/Interpreter.java | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/org/ibex/js/Interpreter.java b/src/org/ibex/js/Interpreter.java index 6fc2859..0d2c219 100644 --- a/src/org/ibex/js/Interpreter.java +++ b/src/org/ibex/js/Interpreter.java @@ -218,25 +218,24 @@ class Interpreter implements ByteCodes, Tokens { Trap t = null; if (target instanceof JSScope && key.equals("cascade")) { - Trap.TrapScope ts = null; + Trap.TrapScope ts = null; JSScope p = (JSScope)target; // search the scope-path for the trap - if (target instanceof Trap.TrapScope) { + if (target instanceof Trap.TrapScope) { ts = (Trap.TrapScope)target; - } - else { - while (ts == null && p.getParentScope() != null) { - p = p.getParentScope(); - if (p instanceof Trap.TrapScope) { - ts = (Trap.TrapScope)p; - } - } - } - t = ts.t.next; - ts.cascadeHappened = true; - while (t != null && t.f.numFormalArgs == 0) t = t.next; - if (t == null) { target = ts.t.trapee; key = ts.t.name; } - - } else if (target instanceof JS) { + } else { + while (ts == null && p.getParentScope() != null) { + p = p.getParentScope(); + if (p instanceof Trap.TrapScope) ts = (Trap.TrapScope)p; + } + } + if(ts != null) { + t = ts.t.next; + ts.cascadeHappened = true; + while (t != null && t.f.numFormalArgs == 0) t = t.next; + if (t == null) { target = ts.t.trapee; key = ts.t.name; } + } + } + if(t == null) { if (target instanceof JSScope) { JSScope p = (JSScope)target; // search the scope-path for the trap t = p.getTrap(key); -- 1.7.10.4