35
35
import com .oracle .svm .core .annotate .RecomputeFieldValue .Kind ;
36
36
import com .oracle .svm .core .annotate .Substitute ;
37
37
import com .oracle .svm .core .annotate .TargetClass ;
38
+ import com .oracle .svm .core .annotate .TargetElement ;
38
39
import com .oracle .svm .core .snippets .KnownIntrinsics ;
39
40
40
41
import jdk .internal .misc .Unsafe ;
@@ -68,7 +69,12 @@ public static ClassLoader latestUserDefinedLoader0() {
68
69
@ Alias @ InjectAccessors (DirectMemoryAccessors .class ) //
69
70
private static long directMemory ;
70
71
@ Alias @ InjectAccessors (PageAlignDirectMemoryAccessors .class ) //
71
- private static boolean pageAlignDirectMemory ;
72
+ @ TargetElement (onlyWith = JDKLatest .class ) //
73
+ private static Boolean pageAlignDirectMemory ;
74
+
75
+ @ Alias @ InjectAccessors (PageAlignDirectMemoryJDK21Accessors .class ) //
76
+ @ TargetElement (name = "pageAlignDirectMemory" , onlyWith = JDK21OrEarlier .class ) //
77
+ private static boolean pageAlignDirectMemoryJDK21 ;
72
78
}
73
79
74
80
final class DirectMemoryAccessors {
@@ -125,7 +131,7 @@ final class PageAlignDirectMemoryAccessors {
125
131
private static boolean initialized ;
126
132
private static boolean pageAlignDirectMemory ;
127
133
128
- static boolean getPageAlignDirectMemory () {
134
+ static Boolean getPageAlignDirectMemory () {
129
135
if (!initialized ) {
130
136
initialize ();
131
137
}
@@ -140,3 +146,9 @@ private static void initialize() {
140
146
initialized = true ;
141
147
}
142
148
}
149
+
150
+ final class PageAlignDirectMemoryJDK21Accessors {
151
+ static boolean getPageAlignDirectMemory () {
152
+ return PageAlignDirectMemoryAccessors .getPageAlignDirectMemory ();
153
+ }
154
+ }
0 commit comments