diff options
Diffstat (limited to 'test/141-class-unload/src/Main.java')
-rw-r--r-- | test/141-class-unload/src/Main.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/test/141-class-unload/src/Main.java b/test/141-class-unload/src/Main.java index 3cfe0064fc..8031dbada8 100644 --- a/test/141-class-unload/src/Main.java +++ b/test/141-class-unload/src/Main.java @@ -147,7 +147,9 @@ public class Main { public WeakReference<ClassLoader> classLoader; } - private static Pair testNoUnloadInstanceHelper(Constructor<?> constructor) throws Exception { + // Make the method not inline-able to prevent the compiler optimizing away the allocation. + private static Pair $noinline$testNoUnloadInstanceHelper(Constructor<?> constructor) + throws Exception { ClassLoader loader = (ClassLoader) constructor.newInstance( DEX_FILE, LIBRARY_SEARCH_PATH, ClassLoader.getSystemClassLoader()); Object o = testNoUnloadHelper(loader); @@ -155,9 +157,8 @@ public class Main { } private static void testNoUnloadInstance(Constructor<?> constructor) throws Exception { - Pair p = testNoUnloadInstanceHelper(constructor); + Pair p = $noinline$testNoUnloadInstanceHelper(constructor); doUnloading(); - // If the class loader was unloded too early due to races, just pass the test. boolean isNull = p.classLoader.get() == null; System.out.println("loader null " + isNull); } |