# HG changeset patch # User Doug Simon # Date 1427961621 -7200 # Node ID 9dcf9f8779c228c533fba7a1b651e3dbdc5606d4 # Parent 374b48caeb9ca88a9b793286fee1840aee56086d fix for replay compilation support diff -r 374b48caeb9c -r 9dcf9f8779c2 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSnippetReflectionProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSnippetReflectionProvider.java Wed Apr 01 19:30:25 2015 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSnippetReflectionProvider.java Thu Apr 02 10:00:21 2015 +0200 @@ -72,14 +72,26 @@ return null; } + // Lazily initialized + private ResolvedJavaType wordTypesType; + private ResolvedJavaType runtimeType; + private ResolvedJavaType configType; + public Object getInjectedNodeIntrinsicParameter(ResolvedJavaType type) { - if (type.isInstance(forObject(runtime.getHostProviders().getWordTypes()))) { + if (wordTypesType == null) { + MetaAccessProvider metaAccess = runtime.getHostProviders().getMetaAccess(); + wordTypesType = metaAccess.lookupJavaType(runtime.getHostProviders().getWordTypes().getClass()); + runtimeType = metaAccess.lookupJavaType(runtime.getClass()); + configType = metaAccess.lookupJavaType(runtime.getConfig().getClass()); + } + + if (type.isAssignableFrom(wordTypesType)) { return runtime.getHostProviders().getWordTypes(); } - if (type.isInstance(forObject(runtime))) { + if (type.isAssignableFrom(runtimeType)) { return runtime; } - if (type.isInstance(forObject(runtime.getConfig()))) { + if (type.isAssignableFrom(configType)) { return runtime.getConfig(); } return null;