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

Commit 02c7c4c3 authored by Winson's avatar Winson
Browse files

Lock on ResourcesManager when cleaning references

Bug: 142634294

Test: atest FrameworksResourceLoaderTests

Change-Id: Ic31925685f362a30370377843b7899ae72cbf5f5
parent 18a399bc
Loading
Loading
Loading
Loading
+16 −13
Original line number Original line Diff line number Diff line
@@ -884,8 +884,10 @@ public class ResourcesManager {
     * @param activityToken optional token to clean up Activity resources
     * @param activityToken optional token to clean up Activity resources
     */
     */
    private void cleanupReferences(IBinder activityToken) {
    private void cleanupReferences(IBinder activityToken) {
        synchronized (this) {
            if (activityToken != null) {
            if (activityToken != null) {
            ActivityResources activityResources = mActivityResourceReferences.get(activityToken);
                ActivityResources activityResources = mActivityResourceReferences.get(
                        activityToken);
                if (activityResources != null) {
                if (activityResources != null) {
                    ArrayUtils.unstableRemoveIf(activityResources.activityResources,
                    ArrayUtils.unstableRemoveIf(activityResources.activityResources,
                            sEmptyReferencePredicate);
                            sEmptyReferencePredicate);
@@ -902,6 +904,7 @@ public class ResourcesManager {
                }
                }
            }
            }
        }
        }
    }


    /**
    /**
     * Creates a Resources object set with a ResourcesImpl object matching the given key.
     * Creates a Resources object set with a ResourcesImpl object matching the given key.