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

Commit c58e9bff authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android Git Automerger
Browse files

am db56b9bd: Merge "Maybe fix #3076572: phone process crashes in SipService,...

am db56b9bd: Merge "Maybe fix #3076572: phone process crashes in SipService, trying to get wifi lock" into gingerbread

Merge commit 'db56b9bd' into gingerbread-plus-aosp

* commit 'db56b9bd':
  Maybe fix #3076572: phone process crashes in SipService, trying to get wifi lock
parents 7c08b70c db56b9bd
Loading
Loading
Loading
Loading
+22 −18
Original line number Diff line number Diff line
@@ -2163,12 +2163,12 @@ public class WifiService extends IWifiManager.Stub {
            if (DBG) throw new IllegalArgumentException("lockMode=" + lockMode);
            return false;
        }
        if (ws != null) {
            enforceWakeSourcePermission(Binder.getCallingUid(), Binder.getCallingPid());
        }
        if (ws != null && ws.size() == 0) {
            ws = null;
        }
        if (ws != null) {
            enforceWakeSourcePermission(Binder.getCallingUid(), Binder.getCallingPid());
        }
        if (ws == null) {
            ws = new WorkSource(Binder.getCallingUid());
        }
@@ -2227,10 +2227,6 @@ public class WifiService extends IWifiManager.Stub {
                ++mScanLocksAcquired;
                break;
            }
        } catch (RemoteException e) {
        } finally {
            Binder.restoreCallingIdentity(ident);
        }

            // Be aggressive about adding new locks into the accounted state...
            // we want to over-report rather than under-report.
@@ -2238,6 +2234,11 @@ public class WifiService extends IWifiManager.Stub {

            updateWifiState();
            return true;
        } catch (RemoteException e) {
            return false;
        } finally {
            Binder.restoreCallingIdentity(ident);
        }
    }

    public void updateWifiLockWorkSource(IBinder lock, WorkSource ws) {
@@ -2283,9 +2284,9 @@ public class WifiService extends IWifiManager.Stub {

        hadLock = (wifiLock != null);

        if (hadLock) {
        long ident = Binder.clearCallingIdentity();
        try {
            if (hadLock) {
                noteAcquireWifiLock(wifiLock);
                switch(wifiLock.mMode) {
                    case WifiManager.WIFI_MODE_FULL:
@@ -2298,13 +2299,16 @@ public class WifiService extends IWifiManager.Stub {
                        ++mScanLocksReleased;
                        break;
                }
            }

            // TODO - should this only happen if you hadLock?
            updateWifiState();

        } catch (RemoteException e) {
        } finally {
            Binder.restoreCallingIdentity(ident);
        }
        }
        // TODO - should this only happen if you hadLock?
        updateWifiState();

        return hadLock;
    }