Skip to content

Commit f148e2e

Browse files
committed
Support an updated value of null in the CrossLayerFieldUpdaterFeature
1 parent b28cf5e commit f148e2e

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/imagelayer/CrossLayerFieldUpdaterFeature.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ private void addInitialObjects(NativeImageHeap heap, HostedUniverse hUniverse) {
194194
for (var info : updateInfoMap.values()) {
195195
// Primitive values are encoded directly in the patch array and do not need heap entries.
196196
if (patchFilter(info) && info.kind.isObject()) {
197-
ImageHeapConstant singletonConstant = (ImageHeapConstant) hUniverse.getBigBang().getUniverse().getHeapScanner().getImageHeapConstant(info.updatedValue);
197+
JavaConstant singletonConstant = hUniverse.getBigBang().getUniverse().getHeapScanner().getImageHeapConstant(info.updatedValue);
198198
heap.addConstant(singletonConstant, false, addReason);
199199
}
200200
}
@@ -326,7 +326,7 @@ private void generateUpdatePatchArray(NativeImageHeap heap) {
326326
case Long -> buffer.putLong(value.updatedValue.asLong());
327327
case Object -> {
328328
int encodedValue;
329-
if (value.updatedValue == null) {
329+
if (value.updatedValue == null || value.updatedValue.equals(JavaConstant.NULL_POINTER)) {
330330
encodedValue = 0;
331331
} else {
332332
var newValue = (ImageHeapConstant) heap.aUniverse.getHeapScanner().getImageHeapConstant(value.updatedValue);

0 commit comments

Comments
 (0)