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

Commit 6e2e8b36 authored by Paul Sliwowski's avatar Paul Sliwowski Committed by Android Git Automerger
Browse files

am a8ad418a: Fix memory leak with CalendarController getInstance().

* commit 'a8ad418a':
  Fix memory leak with CalendarController getInstance().
parents 99bb396d a8ad418a
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import android.util.Pair;
import com.android.calendar.event.EditEventActivity;
import com.android.calendar.selectcalendars.SelectVisibleCalendarsActivity;

import java.lang.ref.WeakReference;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
@@ -74,8 +75,8 @@ public class CalendarController {
    private Pair<Integer, EventHandler> mToBeAddedFirstEventHandler;
    private volatile int mDispatchInProgressCounter = 0;

    private static WeakHashMap<Context, CalendarController> instances =
        new WeakHashMap<Context, CalendarController>();
    private static WeakHashMap<Context, WeakReference<CalendarController>> instances =
        new WeakHashMap<Context, WeakReference<CalendarController>>();

    private final WeakHashMap<Object, Long> filters = new WeakHashMap<Object, Long>(1);

@@ -281,10 +282,15 @@ public class CalendarController {
     */
    public static CalendarController getInstance(Context context) {
        synchronized (instances) {
            CalendarController controller = instances.get(context);
            CalendarController controller = null;
            WeakReference<CalendarController> weakController = instances.get(context);
            if (weakController != null) {
                controller = weakController.get();
            }

            if (controller == null) {
                controller = new CalendarController(context);
                instances.put(context, controller);
                instances.put(context, new WeakReference(controller));
            }
            return controller;
        }