@Override public IMethod getCalleeTarget(CGNode caller, CallSiteReference site, IClass receiver) { MethodReference target = site.getDeclaredTarget(); if (isInvokeExact(target)) { if (! impls.containsKey(target)) { SyntheticMethod invokeExactTrampoline = new SyntheticMethod(target, receiver.getClassHierarchy().lookupClass(TypeReference.JavaLangInvokeMethodHandle), false, false); impls.put(target, invokeExactTrampoline); } return impls.get(target); } return base.getCalleeTarget(caller, site, receiver); } }
@Override public IMethod getCalleeTarget(CGNode caller, CallSiteReference site, IClass receiver) { MethodReference target = site.getDeclaredTarget(); if (isInvokeExact(target)) { if (! impls.containsKey(target)) { SyntheticMethod invokeExactTrampoline = new SyntheticMethod(target, receiver.getClassHierarchy().lookupClass(TypeReference.JavaLangInvokeMethodHandle), false, false); impls.put(target, invokeExactTrampoline); } return impls.get(target); } return base.getCalleeTarget(caller, site, receiver); } }