equal
deleted
inserted
replaced
54 xp' = raise_xcpt (\\<not> cast_ok G C hp oref) ClassCast; |
54 xp' = raise_xcpt (\\<not> cast_ok G C hp oref) ClassCast; |
55 stk' = if xp'=None then stk else tl stk |
55 stk' = if xp'=None then stk else tl stk |
56 in |
56 in |
57 (xp', hp, (stk', vars, Cl, sig, pc+1)#frs))" |
57 (xp', hp, (stk', vars, Cl, sig, pc+1)#frs))" |
58 |
58 |
59 "exec_instr (Invoke mn ps) G hp stk vars Cl sig pc frs = |
59 "exec_instr (Invoke C mn ps) G hp stk vars Cl sig pc frs = |
60 (let n = length ps; |
60 (let n = length ps; |
61 argsoref = take (n+1) stk; |
61 argsoref = take (n+1) stk; |
62 oref = last argsoref; |
62 oref = last argsoref; |
63 xp' = raise_xcpt (oref=Null) NullPointer; |
63 xp' = raise_xcpt (oref=Null) NullPointer; |
64 dynT = fst(the(hp(the_Addr oref))); |
64 dynT = fst(the(hp(the_Addr oref))); |