static void setBase(Stmt s, Local l) { InvokeStmt is = (InvokeStmt) s; InstanceInvokeExpr expr = (InstanceInvokeExpr) is.getInvokeExpr(); expr.getBaseBox().setValue(l); }
public void caseInstanceInvokeExpr(InstanceInvokeExpr iie) { inInstanceInvokeExpr(iie); caseExprOrRefValueBox(iie.getBaseBox()); // decideCaseExprOrRef(iie.getBase()); outInstanceInvokeExpr(iie); }
protected void setInvokeType(InvokeExpr invokeExpr) { for (int i = 0; i < invokeExpr.getArgCount(); i++) { Value v = invokeExpr.getArg(i); if (!(v instanceof Local)) { continue; } Type t = invokeExpr.getMethodRef().parameterType(i); DalvikTyper.v().setType(invokeExpr.getArgBox(i), t, true); } if (invokeExpr instanceof StaticInvokeExpr) { // nothing to do } else if (invokeExpr instanceof InstanceInvokeExpr) { InstanceInvokeExpr iie = (InstanceInvokeExpr) invokeExpr; DalvikTyper.v().setType(iie.getBaseBox(), RefType.v("java.lang.Object"), true); } else if (invokeExpr instanceof DynamicInvokeExpr) { DynamicInvokeExpr die = (DynamicInvokeExpr) invokeExpr; // ? } else { throw new RuntimeException("error: unhandled invoke expression: " + invokeExpr + " " + invokeExpr.getClass()); } }
throw new AssertionError("Unknown invoke op:" + op); boxes[boxes.length - 1] = iinvoke.getBaseBox(); args[args.length - 1].addBox(boxes[boxes.length - 1]); invoke = iinvoke;
javafy(((InstanceInvokeExpr) ie).getBaseBox());
Util.addLnPosTags(((soot.jimple.InstanceInvokeExpr) invokeExpr).getBaseBox(), call.target().position());
static void setBase(Stmt s, Local l) { InvokeStmt is = (InvokeStmt) s; InstanceInvokeExpr expr = (InstanceInvokeExpr) is.getInvokeExpr(); expr.getBaseBox().setValue(l); } static boolean isCopy(Stmt s) {
static void setBase(Stmt s, Local l) { InvokeStmt is = (InvokeStmt) s; InstanceInvokeExpr expr = (InstanceInvokeExpr) is.getInvokeExpr(); expr.getBaseBox().setValue(l); } static boolean isCopy(Stmt s) {