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

Commit 7c10e1e5 authored by Yuichi Araki's avatar Yuichi Araki
Browse files

Fix race condition with GC in TransitionManager

Test: Built
Change-Id: I605b32dc7f86b63ba6ce539fcd13174558feb125
parent 6f26ca27
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -210,14 +210,16 @@ public class TransitionManager {
    private static ArrayMap<ViewGroup, ArrayList<Transition>> getRunningTransitions() {
        WeakReference<ArrayMap<ViewGroup, ArrayList<Transition>>> runningTransitions =
                sRunningTransitions.get();
        if (runningTransitions == null || runningTransitions.get() == null) {
            ArrayMap<ViewGroup, ArrayList<Transition>> transitions =
                    new ArrayMap<ViewGroup, ArrayList<Transition>>();
            runningTransitions = new WeakReference<ArrayMap<ViewGroup, ArrayList<Transition>>>(
                    transitions);
            sRunningTransitions.set(runningTransitions);
        if (runningTransitions != null) {
            ArrayMap<ViewGroup, ArrayList<Transition>> transitions = runningTransitions.get();
            if (transitions != null) {
                return transitions;
            }
        }
        return runningTransitions.get();
        ArrayMap<ViewGroup, ArrayList<Transition>> transitions = new ArrayMap<>();
        runningTransitions = new WeakReference<>(transitions);
        sRunningTransitions.set(runningTransitions);
        return transitions;
    }

    private static void sceneChangeRunTransition(final ViewGroup sceneRoot,