changeset 13656:cd14eb248cec

get holder class from metaspace method when resolving MemberName target method; not necessarily the same as MemberName.clazz
author Andreas Woess <andreas.woess@jku.at>
date Thu, 16 Jan 2014 20:53:18 +0100
parents fff17b5dff8a
children 3730b9979305
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/AbstractMethodHandleNode.java
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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.