Skip to content

Commit e69876f

Browse files
committed
Allow loader to unset SharedLayerGraphs separately.
1 parent 0284e28 commit e69876f

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/heap/SVMImageLayerLoader.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,16 @@
9191
public class SVMImageLayerLoader extends ImageLayerLoader {
9292

9393
private final Field dynamicHubArrayHubField;
94+
private final boolean useSharedLayerGraphs;
9495

9596
private HostedUniverse hostedUniverse;
9697
private final ImageClassLoader imageClassLoader;
9798

98-
public SVMImageLayerLoader(List<FilePaths> loadPaths, ImageClassLoader imageClassLoader) {
99+
public SVMImageLayerLoader(List<FilePaths> loadPaths, ImageClassLoader imageClassLoader, boolean useSharedLayerGraphs) {
99100
super(loadPaths);
100101
dynamicHubArrayHubField = ReflectionUtil.lookupField(DynamicHub.class, "arrayHub");
101102
this.imageClassLoader = imageClassLoader;
103+
this.useSharedLayerGraphs = useSharedLayerGraphs;
102104
}
103105

104106
public void setHostedUniverse(HostedUniverse hostedUniverse) {
@@ -109,6 +111,14 @@ public HostedUniverse getHostedUniverse() {
109111
return hostedUniverse;
110112
}
111113

114+
@Override
115+
public boolean hasAnalysisParsedGraph(AnalysisMethod analysisMethod) {
116+
if (!useSharedLayerGraphs) {
117+
return false;
118+
}
119+
return super.hasAnalysisParsedGraph(analysisMethod);
120+
}
121+
112122
public ClassInitializationInfo getClassInitializationInfo(AnalysisType type) {
113123
PersistedAnalysisType.Reader typeMap = findType(type.getId());
114124

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,18 +180,19 @@ public static HostedImageLayerBuildingSupport initialize(HostedOptionValues valu
180180
WriteLayerArchiveSupport writeLayerArchiveSupport = null;
181181
SVMImageLayerWriter writer = null;
182182
ArchiveSupport archiveSupport = new ArchiveSupport(false);
183+
Boolean useSharedLayerGraphs = SubstrateOptions.UseSharedLayerGraphs.getValue(values);
183184
if (buildingSharedLayer) {
184185
LayerOption layerOption = LayerOption.parse(LayerCreate.getValue(values).lastValue().orElseThrow());
185186
writeLayerArchiveSupport = new WriteLayerArchiveSupport(archiveSupport, layerOption.fileName());
186-
writer = new SVMImageLayerWriter(SubstrateOptions.UseSharedLayerGraphs.getValue(values));
187+
writer = new SVMImageLayerWriter(useSharedLayerGraphs);
187188
}
188189
SVMImageLayerLoader loader = null;
189190
LoadLayerArchiveSupport loadLayerArchiveSupport = null;
190191
if (buildingExtensionLayer) {
191192
Path layerFileName = LayerUse.getValue(values).lastValue().orElseThrow();
192193
loadLayerArchiveSupport = new LoadLayerArchiveSupport(layerFileName, archiveSupport);
193194
ImageLayerLoader.FilePaths paths = new ImageLayerLoader.FilePaths(loadLayerArchiveSupport.getSnapshotPath(), loadLayerArchiveSupport.getSnapshotGraphsPath());
194-
loader = new SVMImageLayerLoader(List.of(paths), imageClassLoader);
195+
loader = new SVMImageLayerLoader(List.of(paths), imageClassLoader, useSharedLayerGraphs);
195196
}
196197

197198
return new HostedImageLayerBuildingSupport(loader, writer, buildingImageLayer, buildingInitialLayer, buildingFinalLayer, writeLayerArchiveSupport, loadLayerArchiveSupport);

0 commit comments

Comments
 (0)