private SootMethodRef remapRef(SootMethodRef ref) { Type return_type = fixType(ref.returnType()); List params = fixParameterList(ref.parameterTypes()); int modifiers = Modifier.PUBLIC; if (ref.isStatic()) { modifiers += Modifier.STATIC; } SootMethod method = new SootMethod(ref.name(), params, return_type, modifiers); SootClass decl_class = ref.declaringClass(); if (shouldMap(decl_class)) { decl_class = getMapping(decl_class); } method.setDeclaringClass(decl_class); return method.makeRef(); }
public void outAStaticInvokeExpr(AStaticInvokeExpr node) { List args; if (node.getArgList() != null) args = (List) mProductions.removeLast(); else args = new ArrayList(); SootMethodRef method = (SootMethodRef) mProductions.removeLast(); method = Scene.v() .makeMethodRef( method.declaringClass(), method.name(), method.parameterTypes(), method.returnType(), true); mProductions.addLast(Jimple.v().newStaticInvokeExpr(method, args)); }
public void methodRef(SootMethodRef m) { handleIndent(); output.append(m.name()); }