- blah <- getTrapType eip callerAddr
- case blah of
- 0 -> staticCallHandler eip
- 1 -> invokeHandler eax eax esp True
- 5 -> invokeHandler eax eax esp False
- 4 -> invokeHandler eax ebx esp True
- 8 -> invokeHandler eax ebx esp False
- 2 -> staticFieldHandler eip
- x -> error $ "wtf: " ++ show x
+ tmap <- getTrapMap
+ case getTrapType tmap eip callerAddr of
+ StaticMethodCall -> staticCallHandler eip
+ StaticFieldAccess -> staticFieldHandler eip
+ VirtualMethodCall imm8 -> invokeHandler eax eax esp imm8
+ InterfaceMethodCall imm8 -> invokeHandler eax ebx esp imm8