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

Commit bd0b7295 authored by Nicolas Geoffray's avatar Nicolas Geoffray Committed by android-build-merger
Browse files

Merge "Remove support for dexopting shared libraries."

am: 75a76da7

Change-Id: I2b77a9abfe953c0b2f3e1889a2f95ac78b7a8219
parents 77daae9b 75a76da7
Loading
Loading
Loading
Loading
+0 −45
Original line number Diff line number Diff line
@@ -150,51 +150,6 @@ public class PackageDexOptimizer {
        }
    }

    int performDexOpt(SharedLibraryInfo info, String[] instructionSets, DexoptOptions options) {
        String classLoaderContext = DexoptUtils.getClassLoaderContext(info);
        final String[] dexCodeInstructionSets = getDexCodeInstructionSets(instructionSets);
        String compilerFilter = PackageManagerServiceCompilerMapping.getCompilerFilterForReason(
                PackageManagerService.REASON_SHARED);
        int result = DEX_OPT_SKIPPED;
        for (String instructionSet : dexCodeInstructionSets) {
            int dexoptNeeded = getDexoptNeeded(
                        info.getPath(), instructionSet, compilerFilter,
                        classLoaderContext, false /* newProfile */,
                        false /* downgrade */);
            if (Math.abs(dexoptNeeded) == DexFile.NO_DEXOPT_NEEDED) {
                continue;
            }
            // Special string recognized by installd.
            final String packageName = "*";
            final String outputPath = null;
            int dexFlags = DEXOPT_PUBLIC
                    | (options.isBootComplete() ? DEXOPT_BOOTCOMPLETE : 0)
                    | (options.isDexoptIdleBackgroundJob() ? DEXOPT_IDLE_BACKGROUND_JOB : 0);
            dexFlags = adjustDexoptFlags(dexFlags);
            final String uuid = StorageManager.UUID_SYSTEM;
            final String seInfo = null;
            final int targetSdkVersion = 0;  // Builtin libraries targets the system's SDK version
            try {
                mInstaller.dexopt(info.getPath(), Process.SYSTEM_UID, packageName,
                        instructionSet, dexoptNeeded, outputPath, dexFlags, compilerFilter,
                        uuid, classLoaderContext, seInfo, false /* downgrade */,
                        targetSdkVersion, /*profileName*/ null, /*dexMetadataPath*/ null,
                        getReasonName(options.getCompilationReason()));
                // The end result is:
                //  - FAILED if any path failed,
                //  - PERFORMED if at least one path needed compilation,
                //  - SKIPPED when all paths are up to date
                if (result != DEX_OPT_FAILED) {
                    result = DEX_OPT_PERFORMED;
                }
            } catch (InstallerException e) {
                Slog.w(TAG, "Failed to dexopt", e);
                result = DEX_OPT_FAILED;
            }
        }
        return result;
    }

    /**
     * Performs dexopt on all code paths of the given package.
     * It assumes the install lock is held.
+1 −1
Original line number Diff line number Diff line
@@ -9463,7 +9463,7 @@ public class PackageManagerService extends IPackageManager.Stub
                            mDexManager.getPackageUseInfoOrDefault(depPackage.packageName),
                            libraryOptions);
                } else {
                    pdo.performDexOpt(info, instructionSets, libraryOptions);
                    // TODO(ngeoffray): Support dexopting system shared libraries.
                }
            }
        }