Exclude magic inner-class name from preload
Add a magic subclass name that will exclude inner classes that are meant
to prevent object instatiation but allow class preloading. This will
allow classes that have undesired side-effects to delay initialization
until the side-effects are no longer disruptive.
Bug: 9984058
Change-Id: I46b0784760d84a2a2da1f9f41d87ee7f70a3fc16
diff --git a/tools/preload/Policy.java b/tools/preload/Policy.java
index ca0291b..af46820 100644
--- a/tools/preload/Policy.java
+++ b/tools/preload/Policy.java
@@ -81,8 +81,9 @@
return SERVICES.contains(processName);
}
- /**Reports if the given class should be preloaded. */
+ /** Reports if the given class should be preloaded. */
public static boolean isPreloadable(LoadedClass clazz) {
- return clazz.systemClass && !EXCLUDED_CLASSES.contains(clazz.name);
+ return clazz.systemClass && !EXCLUDED_CLASSES.contains(clazz.name)
+ && !clazz.name.endsWith("$NoPreloadHolder");
}
}