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

Commit 8206525b authored by Jeff Brown's avatar Jeff Brown
Browse files

Fix lock ordering bug due to use of reentrant lock.

Bug: 6340736
Change-Id: I4dc738da8c976182669b89af9dcb6fd11dcb0223
parent 70544533
Loading
Loading
Loading
Loading
+21 −27
Original line number Diff line number Diff line
@@ -144,10 +144,10 @@ public class VibratorService extends IVibratorService.Stub
                new ContentObserver(mH) {
                    @Override
                    public void onChange(boolean selfChange) {
                        updateVibrateInputDevicesSetting();
                        updateInputDeviceVibrators();
                    }
                });
        updateVibrateInputDevicesSetting();
        updateInputDeviceVibrators();
    }

    public boolean hasVibrator() {
@@ -334,7 +334,10 @@ public class VibratorService extends IVibratorService.Stub
        }
    }

    private void updateVibrateInputDevicesSetting() {
    private void updateInputDeviceVibrators() {
        synchronized (mVibrations) {
            doCancelVibrateLocked();

            synchronized (mInputDeviceVibrators) {
                mVibrateInputDevicesSetting = false;
                try {
@@ -355,15 +358,6 @@ public class VibratorService extends IVibratorService.Stub
                    }
                }

            updateInputDeviceVibrators();
        }
    }

    private void updateInputDeviceVibrators() {
        synchronized (mVibrations) {
            doCancelVibrateLocked();

            synchronized (mInputDeviceVibrators) {
                mInputDeviceVibrators.clear();
                if (mVibrateInputDevicesSetting) {
                    int[] ids = mIm.getInputDeviceIds();