Merge "Check for null in applyDefiningSharedLibraryUpdateLocked." am: 801862313f

am: 0407b12c00

Change-Id: I9d0c691886a0726fa37d7ffc2e07cb00b6f8310e
This commit is contained in:
Nicolas Geoffray
2018-11-16 04:59:55 -08:00
committed by android-build-merger

View File

@@ -9483,7 +9483,7 @@ public class PackageManagerService extends IPackageManager.Stub
} }
} }
private SharedLibraryInfo getSharedLibraryInfoLPr(String name, long version) { private @Nullable SharedLibraryInfo getSharedLibraryInfoLPr(String name, long version) {
LongSparseArray<SharedLibraryInfo> versionedLib = mSharedLibraries.get(name); LongSparseArray<SharedLibraryInfo> versionedLib = mSharedLibraries.get(name);
if (versionedLib == null) { if (versionedLib == null) {
return null; return null;
@@ -9728,20 +9728,30 @@ public class PackageManagerService extends IPackageManager.Stub
private void applyDefiningSharedLibraryUpdateLocked( private void applyDefiningSharedLibraryUpdateLocked(
PackageParser.Package pkg, SharedLibraryInfo libInfo, PackageParser.Package pkg, SharedLibraryInfo libInfo,
BiConsumer<SharedLibraryInfo, SharedLibraryInfo> action) { BiConsumer<SharedLibraryInfo, SharedLibraryInfo> action) {
// Note that libraries defined by this package may be null if:
// - Package manager was unable to create the shared library. The package still
// gets installed, but the shared library does not get created.
// Or:
// - Package manager is in a state where package isn't scanned yet. This will
// get called again after scanning to fix the dependencies.
if (pkg.isLibrary()) { if (pkg.isLibrary()) {
if (pkg.staticSharedLibName != null) { if (pkg.staticSharedLibName != null) {
SharedLibraryInfo definedLibrary = getSharedLibraryInfoLPr( SharedLibraryInfo definedLibrary = getSharedLibraryInfoLPr(
pkg.staticSharedLibName, pkg.staticSharedLibVersion); pkg.staticSharedLibName, pkg.staticSharedLibVersion);
if (definedLibrary != null) {
action.accept(definedLibrary, libInfo); action.accept(definedLibrary, libInfo);
}
} else { } else {
for (String libraryName : pkg.libraryNames) { for (String libraryName : pkg.libraryNames) {
SharedLibraryInfo definedLibrary = getSharedLibraryInfoLPr( SharedLibraryInfo definedLibrary = getSharedLibraryInfoLPr(
libraryName, SharedLibraryInfo.VERSION_UNDEFINED); libraryName, SharedLibraryInfo.VERSION_UNDEFINED);
if (definedLibrary != null) {
action.accept(definedLibrary, libInfo); action.accept(definedLibrary, libInfo);
} }
} }
} }
} }
}
@GuardedBy("mPackages") @GuardedBy("mPackages")
private void addSharedLibraryLPr(PackageParser.Package pkg, Set<String> usesLibraryFiles, private void addSharedLibraryLPr(PackageParser.Package pkg, Set<String> usesLibraryFiles,