Merge "dexopt: Drop native libraries from the class loader context." into sc-dev am: cb302ae4f0 am: 2a3106623f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15055237

Change-Id: I7a87e9821aa02c366444da7578568807c7728f1c
This commit is contained in:
TreeHugger Robot
2021-06-22 18:28:32 +00:00
committed by Automerger Merge Worker
2 changed files with 8 additions and 1 deletions

View File

@@ -177,8 +177,10 @@ public class PackageDexOptimizer {
private int performDexOptLI(AndroidPackage pkg, @NonNull PackageSetting pkgSetting,
String[] targetInstructionSets, CompilerStats.PackageStats packageStats,
PackageDexUsage.PackageUseInfo packageUseInfo, DexoptOptions options) {
// ClassLoader only refers non-native (jar) shared libraries and must ignore
// native (so) shared libraries. See also LoadedApk#createSharedLibraryLoader().
final List<SharedLibraryInfo> sharedLibraries = pkgSetting.getPkgState()
.getUsesLibraryInfos();
.getNonNativeUsesLibraryInfos();
final String[] instructionSets = targetInstructionSets != null ?
targetInstructionSets : getAppDexInstructionSets(
AndroidPackageUtils.getPrimaryCpuAbi(pkg, pkgSetting),

View File

@@ -28,6 +28,7 @@ import com.android.server.pm.PackageSetting;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* For use by {@link PackageSetting} to maintain functionality that used to exist in
@@ -110,6 +111,10 @@ public class PackageStateUnserialized {
this.overrideSeInfo = other.overrideSeInfo;
}
public @NonNull List<SharedLibraryInfo> getNonNativeUsesLibraryInfos() {
return getUsesLibraryInfos().stream()
.filter((l) -> !l.isNative()).collect(Collectors.toList());
}
// Code below generated by codegen v1.0.14.