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

Commit db0dc011 authored by Myles Watson's avatar Myles Watson Committed by android-build-merger
Browse files

Merge "AdapterService: Only clear sAdapterService once"

am: 45ed7a08

Change-Id: Ic771e7ef57cc7c18b6b5baf9e4748cd75bc2b384
parents f99295b8 45ed7a08
Loading
Loading
Loading
Loading
+12 −31
Original line number Diff line number Diff line
@@ -137,40 +137,23 @@ public class AdapterService extends Service {
    private static AdapterService sAdapterService;

    public static synchronized AdapterService getAdapterService() {
        if (sAdapterService != null && !sAdapterService.mCleaningUp) {
        Log.d(TAG, "getAdapterService() - returning " + sAdapterService);
        return sAdapterService;
    }
        if (DBG) {
            if (sAdapterService == null) {
                Log.d(TAG, "getAdapterService() - Service not available");
            } else if (sAdapterService.mCleaningUp) {
                Log.d(TAG, "getAdapterService() - Service is cleaning up");
            }
        }
        return null;
    }

    private static synchronized void setAdapterService(AdapterService instance) {
        if (instance != null && !instance.mCleaningUp) {
            if (DBG) {
                Log.d(TAG, "setAdapterService() - set to: " + instance);
            }
            sAdapterService = instance;
        } else {
            if (DBG) {
        Log.d(TAG, "setAdapterService() - trying to set service to " + instance);
        if (instance == null) {
                    Log.d(TAG, "setAdapterService() - Service not available");
                } else if (instance.mCleaningUp) {
                    Log.d(TAG, "setAdapterService() - Service is cleaning up");
                }
            }
            return;
        }
        sAdapterService = instance;
    }

    private static synchronized void clearAdapterService() {
    private static synchronized void clearAdapterService(AdapterService current) {
        if (sAdapterService == current) {
            sAdapterService = null;
        }
    }

    private AdapterProperties mAdapterProperties;
    private AdapterState mAdapterStateMachine;
@@ -634,6 +617,8 @@ public class AdapterService extends Service {
            return;
        }

        clearAdapterService(this);

        mCleaningUp = true;

        unregisterReceiver(mAlarmBroadcastReceiver);
@@ -693,8 +678,6 @@ public class AdapterService extends Service {
            mProfileServicesState.clear();
        }

        clearAdapterService();

        if (mBinder != null) {
            mBinder.cleanup();
            mBinder = null;  //Do not remove. Otherwise Binder leak!
@@ -2642,8 +2625,6 @@ public class AdapterService extends Service {

    @Override
    public void finalize() {
        debugLog("finalize() - clean up object " + this);
        cleanup();
        if (TRACE_REF) {
            synchronized (AdapterService.class) {
                sRefCount--;
+1 −1
Original line number Diff line number Diff line
@@ -125,7 +125,7 @@ public class AdapterServiceTest {

    @After
    public void tearDown() {
        mAdapterService.finalize();
        mAdapterService.cleanup();
    }

    /**