|
24 | 24 | */ |
25 | 25 | package com.oracle.svm.hosted.imagelayer; |
26 | 26 |
|
27 | | -import java.lang.reflect.Field; |
28 | | -import java.lang.reflect.Modifier; |
29 | 27 | import java.util.ArrayList; |
30 | 28 | import java.util.Collections; |
31 | 29 | import java.util.HashSet; |
|
39 | 37 | import org.graalvm.nativeimage.ImageSingletons; |
40 | 38 |
|
41 | 39 | import com.oracle.graal.pointsto.heap.ImageHeapRelocatableConstant; |
| 40 | +import com.oracle.graal.pointsto.infrastructure.Universe; |
42 | 41 | import com.oracle.graal.pointsto.meta.AnalysisField; |
43 | 42 | import com.oracle.graal.pointsto.meta.AnalysisMetaAccess; |
44 | 43 | import com.oracle.graal.pointsto.meta.AnalysisType; |
|
71 | 70 | import jdk.graal.compiler.nodes.calc.FloatingNode; |
72 | 71 | import jdk.graal.compiler.nodes.spi.LoweringTool; |
73 | 72 | import jdk.vm.ci.meta.JavaConstant; |
74 | | -import jdk.vm.ci.meta.MetaAccessProvider; |
75 | 73 | import jdk.vm.ci.meta.ResolvedJavaField; |
| 74 | +import jdk.vm.ci.meta.ResolvedJavaType; |
76 | 75 |
|
77 | 76 | /** |
78 | 77 | * This class keeps track of the location of static fields assigned in previous layers as well as |
@@ -180,9 +179,8 @@ public void ensureInitializedFromFieldData(AnalysisField aField, SharedLayerSnap |
180 | 179 | assert priorInstalledLocation.equals(result); |
181 | 180 | } |
182 | 181 |
|
183 | | - private void installFieldInAppLayer(Field field, MetaAccessProvider meta) { |
184 | | - AnalysisField aField = (AnalysisField) meta.lookupJavaField(field); |
185 | | - installFieldInAppLayer(aField); |
| 182 | + private void installFieldInAppLayer(ResolvedJavaField field, Universe universe) { |
| 183 | + installFieldInAppLayer((AnalysisField) universe.lookup(field)); |
186 | 184 | } |
187 | 185 |
|
188 | 186 | void installFieldInAppLayer(AnalysisField aField) { |
@@ -231,11 +229,9 @@ void installFieldInAppLayer(AnalysisField aField) { |
231 | 229 | } |
232 | 230 |
|
233 | 231 | @Override |
234 | | - void initializeClassInAppLayer(Class<?> c, MetaAccessProvider meta) { |
235 | | - for (var field : c.getDeclaredFields()) { |
236 | | - if (Modifier.isStatic(field.getModifiers())) { |
237 | | - installFieldInAppLayer(field, meta); |
238 | | - } |
| 232 | + void initializeClassInAppLayer(ResolvedJavaType type, Universe universe) { |
| 233 | + for (var field : type.getStaticFields()) { |
| 234 | + installFieldInAppLayer(field, universe); |
239 | 235 | } |
240 | 236 | } |
241 | 237 |
|
|
0 commit comments