# HG changeset patch # User Andreas Woess # Date 1389901998 -3600 # Node ID cd14eb248cec3e6b702f90aac184e9c4fd3fb0cd # Parent fff17b5dff8a3327ba64c270f239ae902b773c5a get holder class from metaspace method when resolving MemberName target method; not necessarily the same as MemberName.clazz diff -r fff17b5dff8a -r cd14eb248cec graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/AbstractMethodHandleNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/AbstractMethodHandleNode.java Thu Jan 16 17:50:58 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/AbstractMethodHandleNode.java Thu Jan 16 20:53:18 2014 +0100 @@ -176,9 +176,9 @@ // Create a method from the vmtarget pointer Class c = (Class) clazz.asObject(); HotSpotResolvedObjectType holderClass = (HotSpotResolvedObjectType) HotSpotResolvedObjectType.fromClass(c); - HotSpotResolvedJavaMethod targetMethod = holderClass.createMethod(vmtarget.asLong()); + HotSpotResolvedJavaMethod targetMethod = HotSpotResolvedJavaMethod.fromMetaspace(vmtarget.asLong()); - // In lamda forms we erase signature types to avoid resolving issues + // In lambda forms we erase signature types to avoid resolving issues // involving class loaders. When we optimize a method handle invoke // to a direct call we must cast the receiver and arguments to its // actual types.