Skip to content

Commit b100371

Browse files
committed
[JDK-8355586] Adapt JDK-8354897: Support Soft/Weak Reference in AOT cache
PullRequest: graal/20661
2 parents cf05ac3 + 9fad77b commit b100371

File tree

5 files changed

+7
-17
lines changed

5 files changed

+7
-17
lines changed

common.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
"COMMENT.jdks": "When adding or removing JDKs keep in sync with JDKs in ci/common.jsonnet",
1010
"jdks": {
11-
"galahad-jdk": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+21-2454", "platformspecific": true, "extrabundles": ["static-libs"]},
11+
"galahad-jdk": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+21-2525", "platformspecific": true, "extrabundles": ["static-libs"]},
1212

1313
"oraclejdk17": {"name": "jpg-jdk", "version": "17.0.7", "build_id": "jdk-17.0.7+8", "platformspecific": true, "extrabundles": ["static-libs"]},
1414
"labsjdk-ce-17": {"name": "labsjdk", "version": "ce-17.0.7+4-jvmci-23.1-b02", "platformspecific": true },

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/heap/ReferenceInternals.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ public static <T> void setNextDiscovered(Reference<T> instance, Reference<?> new
161161
}
162162

163163
public static boolean hasQueue(Reference<?> instance) {
164-
return cast(instance).queue != Target_java_lang_ref_ReferenceQueue.NULL;
164+
return cast(instance).queue != Target_java_lang_ref_ReferenceQueue.NULL_QUEUE;
165165
}
166166

167167
/*
@@ -229,7 +229,7 @@ public static void processPendingReferences() {
229229
} else {
230230
@SuppressWarnings("unchecked")
231231
Target_java_lang_ref_ReferenceQueue<? super Object> queue = SubstrateUtil.cast(ref.queue, Target_java_lang_ref_ReferenceQueue.class);
232-
if (queue != Target_java_lang_ref_ReferenceQueue.NULL) {
232+
if (queue != Target_java_lang_ref_ReferenceQueue.NULL_QUEUE) {
233233
// Enqueues, avoiding the potentially overridden Reference.enqueue().
234234
queue.enqueue(ref);
235235
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/heap/Target_java_lang_ref_Reference.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public final class Target_java_lang_ref_Reference<T> {
119119
@Uninterruptible(reason = "The initialization of the fields must be atomic with respect to collection.")
120120
Target_java_lang_ref_Reference(T referent, Target_java_lang_ref_ReferenceQueue<? super T> queue) {
121121
this.referent = referent;
122-
this.queue = (queue == null) ? Target_java_lang_ref_ReferenceQueue.NULL : queue;
122+
this.queue = (queue == null) ? Target_java_lang_ref_ReferenceQueue.NULL_QUEUE : queue;
123123
}
124124

125125
@KeepOriginal

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/heap/Target_java_lang_ref_ReferenceQueue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
@TargetClass(ReferenceQueue.class)
3535
final class Target_java_lang_ref_ReferenceQueue<T> {
36-
@Alias static Target_java_lang_ref_ReferenceQueue<Object> NULL;
36+
@Alias static Target_java_lang_ref_ReferenceQueue<Object> NULL_QUEUE;
3737

3838
@Alias @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset) //
3939
volatile Reference<? extends T> head;

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/methodhandles/Target_java_lang_invoke_MethodTypeForm.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import com.oracle.svm.core.annotate.TargetElement;
3434
import com.oracle.svm.core.fieldvaluetransformer.NewEmptyArrayFieldValueTransformer;
3535
import com.oracle.svm.core.invoke.Target_java_lang_invoke_MemberName;
36-
import com.oracle.svm.core.jdk.JDK21OrEarlier;
3736
import com.oracle.svm.core.jdk.JDKLatest;
3837

3938
@TargetClass(className = "java.lang.invoke.MethodTypeForm")
@@ -45,20 +44,11 @@ final class Target_java_lang_invoke_MethodTypeForm {
4544
* writing.
4645
*/
4746
@Alias @RecomputeFieldValue(kind = Kind.Custom, declClass = NewEmptyArrayFieldValueTransformer.class, isFinal = true) //
48-
@TargetElement(onlyWith = JDKLatest.class) //
49-
private Object[] methodHandles;
47+
private SoftReference<?>[] methodHandles;
5048
@Alias @RecomputeFieldValue(kind = Kind.Custom, declClass = NewEmptyArrayFieldValueTransformer.class, isFinal = true) //
51-
@TargetElement(onlyWith = JDKLatest.class) //
52-
private Object[] lambdaForms;
49+
private SoftReference<?>[] lambdaForms;
5350

5451
@Alias @RecomputeFieldValue(kind = Kind.Reset) //
5552
@TargetElement(onlyWith = JDKLatest.class) //
5653
private SoftReference<Target_java_lang_invoke_MemberName> interpretEntry;
57-
58-
@Alias @RecomputeFieldValue(kind = Kind.Custom, declClass = NewEmptyArrayFieldValueTransformer.class, isFinal = true) //
59-
@TargetElement(name = "methodHandles", onlyWith = JDK21OrEarlier.class) //
60-
private SoftReference<?>[] methodHandlesJDK21;
61-
@Alias @RecomputeFieldValue(kind = Kind.Custom, declClass = NewEmptyArrayFieldValueTransformer.class, isFinal = true) //
62-
@TargetElement(name = "lambdaForms", onlyWith = JDK21OrEarlier.class) //
63-
private SoftReference<?>[] lambdaFormsJDK21;
6454
}

0 commit comments

Comments
 (0)