@@ -364,6 +364,7 @@ protected SootMethod generateRedirectMethodForBindService(SootClass serviceConne
364364 }
365365
366366 protected SootMethod generateRedirectMethodForContentProvider (Stmt iccStmt , SootMethod destCPMethod ) {
367+ final SootClass destCPClass = destCPMethod .getDeclaringClass ();
367368 SootMethod iccMethod = iccStmt .getInvokeExpr ().getMethod ();
368369 String newSM_name = "redirector" + num ++;
369370 SootMethod newSM = Scene .v ().makeSootMethod (newSM_name , iccMethod .getParameterTypes (),
@@ -385,14 +386,13 @@ protected SootMethod generateRedirectMethodForContentProvider(Stmt iccStmt, Soot
385386 }
386387
387388 // new
388- Local al = lg .generateLocal (destCPMethod .getDeclaringClass ().getType ());
389- b .getUnits ()
390- .add (Jimple .v ().newAssignStmt (al , Jimple .v ().newNewExpr (destCPMethod .getDeclaringClass ().getType ())));
389+ Local al = lg .generateLocal (destCPClass .getType ());
390+ b .getUnits ().add (Jimple .v ().newAssignStmt (al , Jimple .v ().newNewExpr (destCPClass .getType ())));
391391
392392 // init
393393 List <Type > parameters = new ArrayList <Type >();
394394 List <Value > args = new ArrayList <Value >();
395- SootMethod method = destCPMethod . getDeclaringClass () .getMethod ("<init>" , parameters , VoidType .v ());
395+ SootMethod method = destCPClass .getMethod ("<init>" , parameters , VoidType .v ());
396396 b .getUnits ().add (Jimple .v ().newInvokeStmt (Jimple .v ().newSpecialInvokeExpr (al , method .makeRef (), args )));
397397
398398 Local rtLocal = lg .generateLocal (iccMethod .getReturnType ());
0 commit comments