Skip to content

Commit 822c6fc

Browse files
committed
Replace reportReregistered with setNotPreserved
1 parent acce344 commit 822c6fc

File tree

11 files changed

+43
-47
lines changed

11 files changed

+43
-47
lines changed

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/configure/RuntimeConditionSet.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -145,19 +145,13 @@ public boolean satisfied() {
145145
return result;
146146
}
147147

148-
public boolean preserved() {
148+
public boolean isPreserved() {
149149
return preserved;
150150
}
151151

152-
/**
153-
* Updates the "preserved" state when the value is re-registered.
154-
*/
155152
@Platforms(Platform.HOSTED_ONLY.class)
156-
public void reportReregistered(boolean reregisterPreserved) {
157-
// State can only ever go from "preserved" to "not preserved".
158-
if (!reregisterPreserved) {
159-
this.preserved = false;
160-
}
153+
public void setNotPreserved() {
154+
this.preserved = false;
161155
}
162156

163157
@Override

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/hub/ClassForNameSupport.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,10 @@ public static ConditionalRuntimeValue<Object> updateConditionalValue(Conditional
247247
return new ConditionalRuntimeValue<>(RuntimeConditionSet.createHosted(additionalCondition, preserved), newValue);
248248
} else {
249249
existingConditionalValue.getConditions().addCondition(additionalCondition);
250-
existingConditionalValue.getConditions().reportReregistered(preserved);
251250
existingConditionalValue.updateValue(newValue);
251+
if (!preserved) {
252+
existingConditionalValue.getConditions().setNotPreserved();
253+
}
252254
return existingConditionalValue;
253255
}
254256
}
@@ -290,7 +292,9 @@ private void registerKnownClassName(AccessCondition condition, String className,
290292
knownClassNames.put(className, RuntimeConditionSet.createHosted(condition, preserved));
291293
} else {
292294
existingConditions.addCondition(condition);
293-
existingConditions.reportReregistered(preserved);
295+
if (!preserved) {
296+
existingConditions.setNotPreserved();
297+
}
294298
}
295299
}
296300
}
@@ -303,7 +307,9 @@ public void registerUnsafeAllocated(AccessCondition condition, Class<?> clazz, b
303307
var conditionSet = unsafeInstantiatedClasses.putIfAbsent(clazz, RuntimeConditionSet.createHosted(condition, preserved));
304308
if (conditionSet != null) {
305309
conditionSet.addCondition(condition);
306-
conditionSet.reportReregistered(preserved);
310+
if (!preserved) {
311+
conditionSet.setNotPreserved();
312+
}
307313
}
308314
}
309315
}
@@ -453,12 +459,12 @@ public static boolean isPreserved(Class<?> jClass) {
453459
if (conditionSet == null) {
454460
return false;
455461
}
456-
return conditionSet.preserved();
462+
return conditionSet.isPreserved();
457463
}
458464
for (var singleton : layeredSingletons()) {
459465
ConditionalRuntimeValue<Object> conditionalClass = singleton.knownClasses.get(jClassName);
460466
if (conditionalClass != null) {
461-
return conditionalClass.getConditions().preserved();
467+
return conditionalClass.getConditions().isPreserved();
462468
}
463469
}
464470
return false;
@@ -469,7 +475,7 @@ public static boolean isUnsafeAllocatedPreserved(Class<?> jClass) {
469475
for (var singleton : layeredSingletons()) {
470476
RuntimeConditionSet conditionSet = singleton.unsafeInstantiatedClasses.get(jClass);
471477
if (conditionSet != null) {
472-
return conditionSet.preserved();
478+
return conditionSet.isPreserved();
473479
}
474480
}
475481
return false;

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jni/access/JNIAccessibleClass.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ public void addOrUpdateField(String name, boolean updatedPreserved, Function<Str
8282
JNIAccessibleField existing = fields.get(name);
8383
if (existing == null) {
8484
fields.put(name, mappingFunction.apply(name));
85-
} else {
86-
existing.reportReregistered(updatedPreserved);
85+
} else if (!updatedPreserved) {
86+
existing.setNotPreserved();
8787
}
8888
}
8989

@@ -95,8 +95,8 @@ public void addOrUpdateMethod(JNIAccessibleMethodDescriptor descriptor, boolean
9595
JNIAccessibleMethod existing = methods.get(descriptor);
9696
if (existing == null) {
9797
methods.put(descriptor, mappingFunction.apply(descriptor));
98-
} else {
99-
existing.reportReregistered(updatedPreserved);
98+
} else if (!updatedPreserved) {
99+
existing.setNotPreserved();
100100
}
101101
}
102102

@@ -134,10 +134,7 @@ public boolean isPreserved() {
134134
}
135135

136136
@Override
137-
public void reportReregistered(boolean updatedPreserved) {
138-
// State can only ever go from "preserved" to "not preserved".
139-
if (!updatedPreserved) {
140-
this.preserved = false;
141-
}
137+
public void setNotPreserved() {
138+
preserved = false;
142139
}
143140
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jni/access/JNIAccessibleField.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -169,12 +169,8 @@ public boolean isPreserved() {
169169
return id.and(ID_PRESERVED_FLAG).notEqual(0);
170170
}
171171

172-
@Platforms(HOSTED_ONLY.class)
173172
@Override
174-
public void reportReregistered(boolean updatedPreserved) {
175-
// State can only ever go from "preserved" to "not preserved".
176-
if (!updatedPreserved) {
177-
flags = flags.and(ID_PRESERVED_FLAG.not());
178-
}
173+
public void setNotPreserved() {
174+
flags = flags.and(ID_PRESERVED_FLAG.not());
179175
}
180176
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jni/access/JNIAccessibleMethod.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,7 @@ public boolean isPreserved() {
180180
}
181181

182182
@Override
183-
public void reportReregistered(boolean updatedPreserved) {
184-
// State can only ever go from "preserved" to "not preserved".
185-
if (!updatedPreserved) {
186-
modifiers = modifiers & (~RuntimeMetadataDecoderImpl.PRESERVED_FLAG_MASK);
187-
}
183+
public void setNotPreserved() {
184+
modifiers = modifiers & (~RuntimeMetadataDecoderImpl.PRESERVED_FLAG_MASK);
188185
}
189186
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jni/access/JNIReflectionDictionary.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,9 @@ public JNIAccessibleClass addOrUpdateClass(Class<?> classObj, boolean updatedPre
164164
classesByName.put(name, instance);
165165
return instance;
166166
} else {
167-
existing.reportReregistered(updatedPreserved);
167+
if (!updatedPreserved) {
168+
existing.setNotPreserved();
169+
}
168170
return existing;
169171
}
170172
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jni/access/PreservableJNIElement.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,5 @@ public interface PreservableJNIElement {
3939
boolean isPreserved();
4040

4141
@Platforms(Platform.HOSTED_ONLY.class)
42-
void reportReregistered(boolean updatedPreserved);
42+
void setNotPreserved();
4343
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/reflect/proxy/DynamicProxySupport.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,8 @@ public synchronized void addProxyClass(AccessCondition condition, boolean preser
119119
if (conditionalValue == null) {
120120
conditionalValue = new ConditionalRuntimeValue<>(RuntimeConditionSet.emptySet(preserved), createProxyClass(intfs, preserved));
121121
proxyCache.put(key, conditionalValue);
122-
} else {
123-
conditionalValue.getConditions().reportReregistered(preserved);
122+
} else if (!preserved) {
123+
conditionalValue.getConditions().setNotPreserved();
124124
}
125125
conditionalValue.getConditions().addCondition(condition);
126126
}
@@ -233,7 +233,7 @@ public Class<?> getProxyClass(ClassLoader loader, Class<?>... interfaces) {
233233
public boolean isProxyPreserved(Class<?>... interfaces) {
234234
ProxyCacheKey key = new ProxyCacheKey(interfaces);
235235
if (proxyCache.get(key) instanceof ConditionalRuntimeValue<Object> entry) {
236-
return entry.getConditions().preserved();
236+
return entry.getConditions().isPreserved();
237237
}
238238
return false;
239239
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/reflect/serialize/SerializationSupport.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,9 @@ public void registerSerializationTargetClass(AccessCondition cnd, DynamicHub hub
224224
var previous = classes.putIfAbsent(BuildPhaseProvider.isHostedUniverseBuilt() ? hub.getTypeID() : new DynamicHubKey(hub), RuntimeConditionSet.createHosted(cnd, preserved));
225225
if (previous != null) {
226226
previous.addCondition(cnd);
227-
previous.reportReregistered(preserved);
227+
if (!preserved) {
228+
previous.setNotPreserved();
229+
}
228230
}
229231
}
230232
}
@@ -319,7 +321,7 @@ public static boolean isPreservedForSerialization(DynamicHub dynamicHub) {
319321
for (SerializationSupport singleton : SerializationSupport.layeredSingletons()) {
320322
var conditionSet = singleton.classes.get(dynamicHub.getTypeID());
321323
if (conditionSet != null) {
322-
return conditionSet.preserved();
324+
return conditionSet.isPreserved();
323325
}
324326
}
325327
return false;

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/code/RuntimeMetadataEncoderImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -967,7 +967,7 @@ private void encodeField(UnsafeArrayTypeWriter buf, FieldMetadata field) {
967967
modifiers |= field.heapObject != null ? IN_HEAP_FLAG_MASK : 0;
968968
modifiers |= field.hiding ? HIDING_FLAG_MASK : 0;
969969
modifiers |= field.negative ? NEGATIVE_FLAG_MASK : 0;
970-
modifiers |= field.conditions.preserved() ? PRESERVED_FLAG_MASK : 0;
970+
modifiers |= field.conditions.isPreserved() ? PRESERVED_FLAG_MASK : 0;
971971
buf.putUV(modifiers);
972972
encodeConditions(buf, field.conditions);
973973

@@ -1003,7 +1003,7 @@ private void encodeExecutable(UnsafeArrayTypeWriter buf, ExecutableMetadata exec
10031003
modifiers |= executable.heapObject != null ? IN_HEAP_FLAG_MASK : 0;
10041004
modifiers |= isHiding ? HIDING_FLAG_MASK : 0;
10051005
modifiers |= executable.negative ? NEGATIVE_FLAG_MASK : 0;
1006-
modifiers |= executable.conditions.preserved() ? PRESERVED_FLAG_MASK : 0;
1006+
modifiers |= executable.conditions.isPreserved() ? PRESERVED_FLAG_MASK : 0;
10071007
buf.putUV(modifiers);
10081008

10091009
encodeConditions(buf, executable.conditions);

0 commit comments

Comments
 (0)