|
26 | 26 |
|
27 | 27 | import static com.oracle.svm.guest.staging.Uninterruptible.CALLED_FROM_UNINTERRUPTIBLE_CODE; |
28 | 28 |
|
29 | | -import java.lang.reflect.Field; |
30 | 29 | import java.util.Arrays; |
31 | 30 | import java.util.List; |
32 | 31 | import java.util.function.Predicate; |
|
50 | 49 | import com.oracle.svm.shared.singletons.traits.SingletonLayeredInstallationKind.Duplicable; |
51 | 50 | import com.oracle.svm.shared.singletons.traits.SingletonTraits; |
52 | 51 | import com.oracle.svm.util.AnnotationUtil; |
| 52 | +import com.oracle.svm.util.GuestAccess; |
53 | 53 |
|
54 | 54 | import jdk.graal.compiler.api.directives.GraalDirectives; |
55 | 55 | import jdk.graal.compiler.api.replacements.Fold; |
|
60 | 60 | import jdk.vm.ci.meta.JavaKind; |
61 | 61 | import jdk.vm.ci.meta.JavaType; |
62 | 62 | import jdk.vm.ci.meta.MetaAccessProvider; |
| 63 | +import jdk.vm.ci.meta.ResolvedJavaField; |
63 | 64 | import jdk.vm.ci.meta.ResolvedJavaType; |
64 | 65 | import jdk.vm.ci.meta.UnresolvedJavaType; |
65 | 66 |
|
@@ -370,7 +371,7 @@ public void onSingletonRegistration(ImageSingletonLoader loader, ObjectLayout si |
370 | 371 | List<Integer> currentValues = singleton.getCurrentValues(); |
371 | 372 | List<Integer> priorValues = loader.readIntList("priorValues"); |
372 | 373 |
|
373 | | - var numFields = Arrays.stream(ObjectLayout.class.getDeclaredFields()).filter(Predicate.not(Field::isSynthetic)).count(); |
| 374 | + var numFields = Arrays.stream(GuestAccess.get().lookupType(ObjectLayout.class).getInstanceFields(false)).filter(Predicate.not(ResolvedJavaField::isSynthetic)).count(); |
374 | 375 | VMError.guarantee(numFields - 1 == currentValues.size(), "Missing fields"); |
375 | 376 |
|
376 | 377 | VMError.guarantee(currentValues.equals(priorValues), |
|
0 commit comments