Merge "Fix race condition with GC in TransitionManager"
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user