@Override public String toString() { return "ctxt:" + method.getName(); } }
@Override public String toString() { return "ctxt:" + method.getName(); } }
@Override public Atom getName() { return ref.getName(); }
@Override public Atom getName() { return getReference().getName(); }
@Override public Atom getName() { return getReference().getName(); }
@Override public Atom getName() { return getReference().getName(); }
/** * return true iff m represents one of the well-known methods in * java.lang.reflect.Arrays that do some sort of arraycopy */ private static boolean isArrayCopyMethod(MethodReference m) { if (m.getDeclaringClass().equals(Arrays)) { if (m.getName().equals(asList) || m.getName().equals(copyOf) || m.getName().equals(copyOfRange)) { return true; } } return false; }
/** * return true iff m represents one of the well-known methods in * java.lang.reflect.Arrays that do some sort of arraycopy */ private static boolean isArrayCopyMethod(MethodReference m) { if (m.getDeclaringClass().equals(Arrays)) { if (m.getName().equals(asList) || m.getName().equals(copyOf) || m.getName().equals(copyOfRange)) { return true; } } return false; }
@Override public boolean isInit() { return getReference().getName().equals(MethodReference.initAtom); }
@Override public boolean isInit() { return getReference().getName().equals(MethodReference.initAtom); }
/** * @return something like: com.foo.bar.createLargeOrder(IILjava/lang/String;Ljava/sql/Date;)Ljava/lang/Integer; */ @Override public String getSignature() { // TODO: check that we're not calling this often. String s = getDeclaringClass().getName().toString().substring(1).replace('/', '.') + '.' + getName() + getDescriptor(); return s; }
/** * @return something like: com.foo.bar.createLargeOrder(IILjava/lang/String;Ljava/sql/Date;)Ljava/lang/Integer; */ @Override public String getSignature() { // TODO: check that we're not calling this often. String s = getDeclaringClass().getName().toString().substring(1).replace('/', '.') + '.' + getName() + getDescriptor(); return s; }
/** * return true iff m represents one of the well-known methods in java.lang.reflect.Arrays that do toString() on an array */ private static boolean isArrayToStringMethod(MethodReference m) { if (m.getDeclaringClass().equals(Arrays)) { if (m.getName().equals(toString)) { return true; } } return false; }
/** * return true iff m represents one of the well-known methods in java.lang.reflect.Arrays that do toString() on an array */ private static boolean isArrayToStringMethod(MethodReference m) { if (m.getDeclaringClass().equals(Arrays)) { if (m.getName().equals(toString)) { return true; } } return false; }
private static boolean isInvokeExact(MethodReference target) { return target.getDeclaringClass().getName().equals(TypeReference.JavaLangInvokeMethodHandle.getName()) && target.getName().toString().equals("invokeExact"); }
private MethodReference trampoline() { try { return MethodReference.findOrCreate(LambdaSummaryClass.this.getReference(), invoke.getDeclaredTarget().getName(), Descriptor.findOrCreateUTF8(getLambdaDeclaredSignature())); } catch (IllegalArgumentException | InvalidClassFileException e) { assert false : e; return null; } }
private MethodReference trampoline() { try { return MethodReference.findOrCreate(LambdaSummaryClass.this.getReference(), invoke.getDeclaredTarget().getName(), Descriptor.findOrCreateUTF8(getLambdaDeclaredSignature())); } catch (IllegalArgumentException | InvalidClassFileException e) { assert false : e; return null; } }
public static MethodNamePattern patternForReference(MethodReference methodRef) throws UTFDataFormatException { String className = methodRef.getDeclaringClass().getName().toUnicodeString(); String methodName = methodRef.getName().toUnicodeString(); String descriptor = methodRef.getDescriptor().toUnicodeString(); MethodNamePattern pattern = new MethodNamePattern(className, methodName, descriptor); return pattern; } }
@SuppressWarnings("unused") private static OrdinalSet<FuncVertex> getConstructorTargets(FlowGraph flowGraph, CallVertex callVertex, IProgressMonitor monitor) throws CancelException { SSAAbstractInvokeInstruction invoke = callVertex.getInstruction(); assert invoke.getDeclaredTarget().getName().equals(JavaScriptMethods.ctorAtom); VarVertex objectParam = flowGraph.getVertexFactory().makeVarVertex(callVertex.getCaller(), invoke.getUse(0)); return flowGraph.getReachingSet(objectParam, monitor); }
@SuppressWarnings("unused") private static OrdinalSet<FuncVertex> getConstructorTargets(FlowGraph flowGraph, CallVertex callVertex, IProgressMonitor monitor) throws CancelException { SSAAbstractInvokeInstruction invoke = callVertex.getInstruction(); assert invoke.getDeclaredTarget().getName().equals(JavaScriptMethods.ctorAtom); VarVertex objectParam = flowGraph.getVertexFactory().makeVarVertex(callVertex.getCaller(), invoke.getUse(0)); return flowGraph.getReachingSet(objectParam, monitor); }