Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d58dcf55 authored by Jeremy Meyer's avatar Jeremy Meyer Committed by Cherrypicker Worker
Browse files

Synchronize increment of resource cache generations

Test: manual/presubmits
Fixes: 287691671
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:c137aac4d8bbe2c7f36f2b5b60dc3bfa86bc0457)
Merged-In: I6189813291d3581fc401fd29801ae46c6eeab58c
Change-Id: I6189813291d3581fc401fd29801ae46c6eeab58c
parent b91edcc6
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -137,9 +137,11 @@ abstract class ThemedResourceCache<T> {
     */
    @UnsupportedAppUsage
    public void onConfigurationChange(@Config int configChanges) {
        prune(configChanges);
        synchronized (this) {
            pruneLocked(configChanges);
            mGeneration++;
        }
    }

    /**
     * Returns whether a cached entry has been invalidated by a configuration
@@ -214,8 +216,7 @@ 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) {
    private boolean pruneLocked(@Config int configChanges) {
        if (mThemedEntries != null) {
            for (int i = mThemedEntries.size() - 1; i >= 0; i--) {
                if (pruneEntriesLocked(mThemedEntries.valueAt(i), configChanges)) {
@@ -230,7 +231,6 @@ abstract class ThemedResourceCache<T> {
        return mThemedEntries == null && mNullThemedEntries == null
                && mUnthemedEntries == null;
    }
    }

    private boolean pruneEntriesLocked(@Nullable LongSparseArray<WeakReference<T>> entries,
            @Config int configChanges) {