Skip to content

Commit 2700cc4

Browse files
committed
[GR-52599] Remove HostVM.installInThread.
PullRequest: graal/17219
2 parents 13d6fbb + f0bde38 commit 2700cc4

File tree

5 files changed

+15
-39
lines changed

5 files changed

+15
-39
lines changed

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/api/HostVM.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ protected HostVM(OptionValues options, ClassLoader classLoader) {
8282
this.classReachabilityListeners = new ArrayList<>();
8383
}
8484

85+
public ClassLoader getClassLoader() {
86+
return classLoader;
87+
}
88+
8589
public OptionValues options() {
8690
return options;
8791
}
@@ -246,17 +250,9 @@ public boolean platformSupported(AnnotatedElement element) {
246250
return true;
247251
}
248252

249-
public void installInThread(@SuppressWarnings("unused") Object vmConfig) {
250-
Thread.currentThread().setContextClassLoader(classLoader);
251-
}
252-
253253
public void clearInThread() {
254254
}
255255

256-
public Object getConfiguration() {
257-
return null;
258-
}
259-
260256
public abstract Comparator<? super ResolvedJavaType> getTypeComparator();
261257

262258
/*

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/util/CompletionExecutor.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ private enum State {
6565
private final DebugContext debug;
6666
private final BigBang bb;
6767
private Timing timing;
68-
private Object vmConfig;
6968

7069
public interface Timing {
7170
long getPrintIntervalNanos();
@@ -97,7 +96,6 @@ public void init(Timing newTiming) {
9796
postedOperations.reset();
9897
completedOperations.reset();
9998
postedBeforeStart = Collections.synchronizedList(new ArrayList<>());
100-
vmConfig = bb.getHostVM().getConfiguration();
10199
}
102100

103101
/**
@@ -156,7 +154,6 @@ private void executeService(DebugContextRunnable command) {
156154

157155
@SuppressWarnings("try")
158156
private void executeCommand(DebugContextRunnable command) {
159-
bb.getHostVM().installInThread(vmConfig);
160157
long startTime = 0L;
161158
if (timing != null) {
162159
startTime = System.nanoTime();

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/ImageSingletonsSupportImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public static final class HostedManagement {
7272
*/
7373
private static HostedManagement singletonDuringImageBuild;
7474

75-
public static HostedManagement getAndAssertExists() {
75+
private static HostedManagement getAndAssertExists() {
7676
HostedManagement result = get();
7777
assert result != null;
7878
return result;

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/SVMHost.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -276,17 +276,6 @@ public boolean isRelocatedPointer(JavaConstant constant) {
276276
return constant instanceof RelocatableConstant;
277277
}
278278

279-
@Override
280-
public void installInThread(Object vmConfig) {
281-
super.installInThread(vmConfig);
282-
assert vmConfig == ImageSingletonsSupportImpl.HostedManagement.get();
283-
}
284-
285-
@Override
286-
public Object getConfiguration() {
287-
return ImageSingletonsSupportImpl.HostedManagement.getAndAssertExists();
288-
}
289-
290279
@Override
291280
public void registerType(AnalysisType analysisType) {
292281

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/snippets/SubstrateGraphBuilderPlugins.java

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ public boolean isDecorator() {
222222
public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode patternNode) {
223223
String pattern = asConstantObject(b, String.class, patternNode);
224224
if (pattern != null) {
225-
b.add(ReachabilityRegistrationNode.create(() -> parsePatternAndRegister(pattern), reason));
225+
b.add(ReachabilityRegistrationNode.create(() -> parsePatternAndRegister(loader, pattern), reason));
226226
return true;
227227
}
228228
return false;
@@ -297,7 +297,7 @@ private static boolean isLimitPattern(String pattern) {
297297
* serialization/deserialization.</li>
298298
* </ul>
299299
*/
300-
private static void parsePatternAndRegister(String pattern) {
300+
private static void parsePatternAndRegister(ImageClassLoader loader, String pattern) {
301301
String[] patterns = pattern.split(";");
302302
for (String p : patterns) {
303303
int nameLen = p.length();
@@ -324,12 +324,9 @@ private static void parsePatternAndRegister(String pattern) {
324324
final String className = p.substring(poffset, nameLen - 1);
325325
if (!negate) {
326326
if (className.endsWith(LambdaUtils.SERIALIZATION_TEST_LAMBDA_CLASS_SUBSTRING)) {
327-
try {
328-
String lambdaHolderName = LambdaUtils.capturingClass(className);
329-
RuntimeSerialization.registerLambdaCapturingClass(Class.forName(lambdaHolderName, false, Thread.currentThread().getContextClassLoader()));
330-
} catch (ClassNotFoundException e) {
331-
// no class, no registration
332-
}
327+
String lambdaHolderName = LambdaUtils.capturingClass(className);
328+
// If the class cannot be loaded, there will be no registration
329+
loader.findClass(lambdaHolderName).ifPresent(RuntimeSerialization::registerLambdaCapturingClass);
333330
}
334331
}
335332
}
@@ -340,15 +337,12 @@ private static void parsePatternAndRegister(String pattern) {
340337
}
341338
// Pattern is a class name
342339
if (!negate) {
343-
try {
344-
/* Support arrays of non-primitive types */
345-
if (name.startsWith("[") && name.contains("[L") && !name.endsWith(";")) {
346-
name += ";";
347-
}
348-
RuntimeSerialization.register(Class.forName(name, false, Thread.currentThread().getContextClassLoader()));
349-
} catch (ClassNotFoundException e) {
350-
// no class, no registration
340+
/* Support arrays of non-primitive types */
341+
if (name.startsWith("[") && name.contains("[L") && !name.endsWith(";")) {
342+
name += ";";
351343
}
344+
// If the class cannot be loaded, there will be no registration
345+
loader.findClass(name).ifPresent(RuntimeSerialization::register);
352346
}
353347
}
354348
}

0 commit comments

Comments
 (0)