am dfc066e7: Merge change I5ad37324 into eclair
Merge commit 'dfc066e769ec227b4dbf0e2e5097973c20c2b34f' into eclair-mr2 * commit 'dfc066e769ec227b4dbf0e2e5097973c20c2b34f': Fix issue #2262563: 40 ANR reports from com.android.settings in dogfooding sholes running ERD43
This commit is contained in:
@@ -178,15 +178,16 @@ public final class ActivityThread {
|
||||
* null.
|
||||
*/
|
||||
Resources getTopLevelResources(String resDir, CompatibilityInfo compInfo) {
|
||||
ResourcesKey key = new ResourcesKey(resDir, compInfo.applicationScale);
|
||||
Resources r;
|
||||
synchronized (mPackages) {
|
||||
// Resources is app scale dependent.
|
||||
ResourcesKey key = new ResourcesKey(resDir, compInfo.applicationScale);
|
||||
if (false) {
|
||||
Log.w(TAG, "getTopLevelResources: " + resDir + " / "
|
||||
+ compInfo.applicationScale);
|
||||
}
|
||||
WeakReference<Resources> wr = mActiveResources.get(key);
|
||||
Resources r = wr != null ? wr.get() : null;
|
||||
r = wr != null ? wr.get() : null;
|
||||
if (r != null && r.getAssets().isUpToDate()) {
|
||||
if (false) {
|
||||
Log.w(TAG, "Returning cached resources " + r + " " + resDir
|
||||
@@ -194,25 +195,37 @@ public final class ActivityThread {
|
||||
}
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
//if (r != null) {
|
||||
// Log.w(TAG, "Throwing away out-of-date resources!!!! "
|
||||
// + r + " " + resDir);
|
||||
//}
|
||||
//if (r != null) {
|
||||
// Log.w(TAG, "Throwing away out-of-date resources!!!! "
|
||||
// + r + " " + resDir);
|
||||
//}
|
||||
|
||||
AssetManager assets = new AssetManager();
|
||||
if (assets.addAssetPath(resDir) == 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
//Log.i(TAG, "Resource: key=" + key + ", display metrics=" + metrics);
|
||||
DisplayMetrics metrics = getDisplayMetricsLocked(false);
|
||||
r = new Resources(assets, metrics, getConfiguration(), compInfo);
|
||||
if (false) {
|
||||
Log.i(TAG, "Created app resources " + resDir + " " + r + ": "
|
||||
+ r.getConfiguration() + " appScale="
|
||||
+ r.getCompatibilityInfo().applicationScale);
|
||||
AssetManager assets = new AssetManager();
|
||||
if (assets.addAssetPath(resDir) == 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
//Log.i(TAG, "Resource: key=" + key + ", display metrics=" + metrics);
|
||||
DisplayMetrics metrics = getDisplayMetricsLocked(false);
|
||||
r = new Resources(assets, metrics, getConfiguration(), compInfo);
|
||||
if (false) {
|
||||
Log.i(TAG, "Created app resources " + resDir + " " + r + ": "
|
||||
+ r.getConfiguration() + " appScale="
|
||||
+ r.getCompatibilityInfo().applicationScale);
|
||||
}
|
||||
|
||||
synchronized (mPackages) {
|
||||
WeakReference<Resources> wr = mActiveResources.get(key);
|
||||
Resources existing = wr != null ? wr.get() : null;
|
||||
if (existing != null && existing.getAssets().isUpToDate()) {
|
||||
// Someone else already created the resources while we were
|
||||
// unlocked; go ahead and use theirs.
|
||||
r.getAssets().close();
|
||||
return existing;
|
||||
}
|
||||
|
||||
// XXX need to remove entries when weak references go away
|
||||
mActiveResources.put(key, new WeakReference<Resources>(r));
|
||||
return r;
|
||||
|
||||
Reference in New Issue
Block a user