diff options
| author | 2023-07-05 18:31:04 +0000 | |
|---|---|---|
| committer | 2023-07-05 18:31:04 +0000 | |
| commit | f49451bbea2fd8708e12a679927d7b1d4c77cd7e (patch) | |
| tree | aa5875ef066880914f1545b2bbbde92076cf55a0 | |
| parent | f15015b6ac81df69dfe9909443bdb9f86436f294 (diff) | |
| parent | 0bdacdfcb65bcc39d27cbe92307798aaaa999709 (diff) | |
Merge "Synchronize increment of resource cache generations" into udc-dev am: dd33731584 am: 0bdacdfcb6
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23863712
Change-Id: I88b365da6427fc6eeaea6a5aca0094c3b472d7af
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | core/java/android/content/res/ThemedResourceCache.java | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/core/java/android/content/res/ThemedResourceCache.java b/core/java/android/content/res/ThemedResourceCache.java index a7cd168690b4..690dfcf9619b 100644 --- a/core/java/android/content/res/ThemedResourceCache.java +++ b/core/java/android/content/res/ThemedResourceCache.java @@ -137,8 +137,10 @@ abstract class ThemedResourceCache<T> { */ @UnsupportedAppUsage public void onConfigurationChange(@Config int configChanges) { - prune(configChanges); - mGeneration++; + synchronized (this) { + pruneLocked(configChanges); + mGeneration++; + } } /** @@ -214,22 +216,20 @@ abstract class ThemedResourceCache<T> { * simply prune missing weak references * @return {@code true} if the cache is completely empty after pruning */ - private boolean prune(@Config int configChanges) { - synchronized (this) { - if (mThemedEntries != null) { - for (int i = mThemedEntries.size() - 1; i >= 0; i--) { - if (pruneEntriesLocked(mThemedEntries.valueAt(i), configChanges)) { - mThemedEntries.removeAt(i); - } + private boolean pruneLocked(@Config int configChanges) { + if (mThemedEntries != null) { + for (int i = mThemedEntries.size() - 1; i >= 0; i--) { + if (pruneEntriesLocked(mThemedEntries.valueAt(i), configChanges)) { + mThemedEntries.removeAt(i); } } + } - pruneEntriesLocked(mNullThemedEntries, configChanges); - pruneEntriesLocked(mUnthemedEntries, configChanges); + pruneEntriesLocked(mNullThemedEntries, configChanges); + pruneEntriesLocked(mUnthemedEntries, configChanges); - return mThemedEntries == null && mNullThemedEntries == null - && mUnthemedEntries == null; - } + return mThemedEntries == null && mNullThemedEntries == null + && mUnthemedEntries == null; } private boolean pruneEntriesLocked(@Nullable LongSparseArray<WeakReference<T>> entries, |