fixed applyConfigurationToResourcesLocked WeakReference is null

https://code.google.com/p/android/issues/detail?id=226956

Test: compile anr monkey test

Signed-off-by: liangweikang <liangweikang900911@gmail.com>
This commit is contained in:
liangweikang
2016-11-03 16:12:08 +08:00
committed by weikang liang
parent 605df82c9e
commit a9c9bf5106

View File

@@ -793,7 +793,8 @@ public class ResourcesManager {
for (int i = mResourceImpls.size() - 1; i >= 0; i--) {
ResourcesKey key = mResourceImpls.keyAt(i);
ResourcesImpl r = mResourceImpls.valueAt(i).get();
WeakReference<ResourcesImpl> weakImplRef = mResourceImpls.valueAt(i);
ResourcesImpl r = weakImplRef != null ? weakImplRef.get() : null;
if (r != null) {
if (DEBUG || DEBUG_CONFIGURATION) Slog.v(TAG, "Changing resources "
+ r + " config to: " + config);
@@ -854,8 +855,9 @@ public class ResourcesManager {
final int implCount = mResourceImpls.size();
for (int i = 0; i < implCount; i++) {
final ResourcesImpl impl = mResourceImpls.valueAt(i).get();
final ResourcesKey key = mResourceImpls.keyAt(i);
final WeakReference<ResourcesImpl> weakImplRef = mResourceImpls.valueAt(i);
final ResourcesImpl impl = weakImplRef != null ? weakImplRef.get() : null;
if (impl != null && key.mResDir.equals(assetPath)) {
if (!ArrayUtils.contains(key.mLibDirs, libAsset)) {
final int newLibAssetCount = 1 +