Merge "Check for null in applyDefiningSharedLibraryUpdateLocked." am: 801862313f
am: 0407b12c00
Change-Id: I9d0c691886a0726fa37d7ffc2e07cb00b6f8310e
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user