From ffaa00bfd9e316bc7c235aba9ecf310e3c56097f Mon Sep 17 00:00:00 2001 From: Christian Wirth Date: Thu, 9 Jul 2026 14:05:03 +0200 Subject: [PATCH] [GR-77163] Safely publish object type id cache --- .../flow/context/bytecode/ContextSensitiveMultiTypeState.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/flow/context/bytecode/ContextSensitiveMultiTypeState.java b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/flow/context/bytecode/ContextSensitiveMultiTypeState.java index d9392f296463..997c152a2c58 100644 --- a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/flow/context/bytecode/ContextSensitiveMultiTypeState.java +++ b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/flow/context/bytecode/ContextSensitiveMultiTypeState.java @@ -24,6 +24,7 @@ */ package com.oracle.graal.pointsto.flow.context.bytecode; +import java.lang.invoke.VarHandle; import java.util.Arrays; import java.util.BitSet; import java.util.Iterator; @@ -75,6 +76,8 @@ public int[] getObjectTypeIds() { for (int i = 0; i < objects.length; i++) { result[i] = objects[i].getTypeId(); } + /* Ensure array element initializations are published before publishing the array. */ + VarHandle.storeStoreFence(); this.objectTypeIds = result; } return objectTypeIds;