|
32 | 32 |
|
33 | 33 | import com.oracle.graal.pointsto.meta.AnalysisField; |
34 | 34 | import com.oracle.svm.core.hub.DynamicHub; |
35 | | -import com.oracle.svm.core.hub.RuntimeClassLoading; |
36 | | -import com.oracle.svm.core.hub.crema.CremaSupport; |
37 | 35 | import com.oracle.svm.core.hub.registry.SymbolsSupport; |
38 | 36 | import com.oracle.svm.core.util.VMError; |
39 | 37 | import com.oracle.svm.espresso.classfile.descriptors.Name; |
@@ -116,13 +114,16 @@ public static InterpreterResolvedJavaField createAtBuildTime(AnalysisField origi |
116 | 114 | } |
117 | 115 |
|
118 | 116 | public static InterpreterResolvedJavaField createForInterpreter(String name, int modifiers, |
119 | | - InterpreterResolvedJavaType type, InterpreterResolvedObjectType declaringClass, |
| 117 | + JavaType type, InterpreterResolvedObjectType declaringClass, |
120 | 118 | int offset, |
121 | | - JavaConstant constant) { |
| 119 | + JavaConstant constant, |
| 120 | + boolean isWordStorage) { |
122 | 121 | MetadataUtil.requireNonNull(type); |
123 | 122 | MetadataUtil.requireNonNull(declaringClass); |
124 | 123 | Symbol<Name> nameSymbol = SymbolsSupport.getNames().getOrCreate(name); |
125 | | - return new InterpreterResolvedJavaField(nameSymbol, type.getSymbolicType(), modifiers, type, declaringClass, offset, constant, type.isWordType()); |
| 124 | + InterpreterResolvedJavaType resolvedType = type instanceof InterpreterResolvedJavaType ? (InterpreterResolvedJavaType) type : null; |
| 125 | + Symbol<Type> symbolicType = resolvedType == null ? CremaTypeAccess.jvmciNameToType(type.getName()) : resolvedType.getSymbolicType(); |
| 126 | + return new InterpreterResolvedJavaField(nameSymbol, symbolicType, modifiers, resolvedType, declaringClass, offset, constant, isWordStorage); |
126 | 127 | } |
127 | 128 |
|
128 | 129 | @Platforms(Platform.HOSTED_ONLY.class) |
@@ -199,25 +200,8 @@ public JavaType getType() { |
199 | 200 | * eagerly create a ResolvedJavaType for it, we would force it back in. |
200 | 201 | */ |
201 | 202 | if (resolvedType == null) { |
202 | | - UnresolvedJavaType unresolvedJavaType = UnresolvedJavaType.create(typeSymbol.toString()); |
203 | | - Class<?> cls = null; |
204 | | - /* |
205 | | - * Prevent CremaSupport from being reached from other users of |
206 | | - * InterpreterResolvedJavaField. |
207 | | - */ |
208 | | - if (RuntimeClassLoading.isSupported()) { |
209 | | - /* |
210 | | - * This should not trigger actual class loading. Instead, we query the loader |
211 | | - * registry for an already loaded class. |
212 | | - */ |
213 | | - cls = CremaSupport.singleton().findLoadedClass(unresolvedJavaType, getDeclaringClass()); |
214 | | - } |
215 | | - if (cls == null) { |
216 | | - // Not loaded: return the unresolved type |
217 | | - return unresolvedJavaType; |
218 | | - } |
219 | | - resolvedType = (InterpreterResolvedJavaType) DynamicHub.fromClass(cls).getInterpreterType(); |
220 | | - |
| 203 | + // Not included. return the unresolved type. |
| 204 | + return UnresolvedJavaType.create(typeSymbol.toString()); |
221 | 205 | } |
222 | 206 | return resolvedType; |
223 | 207 | } |
|
0 commit comments