Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d42527b8 authored by Calin Juravle's avatar Calin Juravle Committed by Gerrit Code Review
Browse files

Merge "Pass system server class loader context when asking GetDexOptNeeded"

parents 5a01991f 4cae6f7f
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -647,17 +647,18 @@ public class ZygoteInit {
        String classPathForElement = "";
        boolean compiledSomething = false;
        for (String classPathElement : classPathElements) {
            // System server is fully AOTed and never profiled
            // for profile guided compilation.
            // We default to the verify filter because the compilation will happen on /data and
            // system server cannot load executable code outside /system.
            String systemServerFilter = SystemProperties.get(
                    "dalvik.vm.systemservercompilerfilter", "speed");
                    "dalvik.vm.systemservercompilerfilter", "verify");

            String classLoaderContext =
                        getSystemServerClassLoaderContext(classPathForElement);
            int dexoptNeeded;
            try {
                dexoptNeeded = DexFile.getDexOptNeeded(
                        classPathElement, instructionSet, systemServerFilter,
                        null /* classLoaderContext */, false /* newProfile */,
                        false /* downgrade */);
                        classLoaderContext, false /* newProfile */, false /* downgrade */);
            } catch (FileNotFoundException ignored) {
                // Do not add to the classpath.
                Log.w(TAG, "Missing classpath element for system server: " + classPathElement);
@@ -678,8 +679,6 @@ public class ZygoteInit {
                final String compilerFilter = systemServerFilter;
                final String uuid = StorageManager.UUID_PRIVATE_INTERNAL;
                final String seInfo = null;
                final String classLoaderContext =
                        getSystemServerClassLoaderContext(classPathForElement);
                final int targetSdkVersion = 0;  // SystemServer targets the system's SDK version
                try {
                    installd.dexopt(classPathElement, Process.SYSTEM_UID, packageName,