diff --git a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisMethod.java b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisMethod.java index e2077ea10f02..372823f2c028 100644 --- a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisMethod.java +++ b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisMethod.java @@ -475,6 +475,7 @@ public void setReachableInCurrentLayer() { if (imageLayerLoader != null) { imageLayerLoader.loadPriorStrengthenedGraphAnalysisElements(this); } + ConcurrentLightHashSet.forEach(this, allImplementationsUpdater, AnalysisMethod::setReachableInCurrentLayer); }); } } diff --git a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java index a27449d83e01..92e1c4707811 100644 --- a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java +++ b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java @@ -670,6 +670,9 @@ private void prepareMethodImplementations(AnalysisType superType) { AnalysisMethod override = resolveConcreteMethod(method, null); if (override != null && !override.equals(method)) { ConcurrentLightHashSet.addElement(method, AnalysisMethod.allImplementationsUpdater, override); + if (method.reachableInCurrentLayer()) { + override.setReachableInCurrentLayer(); + } } }); } diff --git a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisUniverse.java b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisUniverse.java index 02070692e3cf..9fd730c7c8ce 100644 --- a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisUniverse.java +++ b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisUniverse.java @@ -452,6 +452,9 @@ private static void prepareMethodImplementations(AnalysisMethod method) { AnalysisMethod override = subtype.resolveConcreteMethod(method, null); if (override != null && !override.equals(method)) { ConcurrentLightHashSet.addElement(method, AnalysisMethod.allImplementationsUpdater, override); + if (method.reachableInCurrentLayer()) { + override.setReachableInCurrentLayer(); + } } } }