diff options
| author | 2018-10-18 13:58:27 +0900 | |
|---|---|---|
| committer | 2018-10-19 12:39:46 +0900 | |
| commit | d0446dc8c411d5032c2b449e6f923a9d7b1f4adf (patch) | |
| tree | ad21fd36499b954fa1b5a766f3e19f920da90ca1 /libs/hwui/ProgramCache.cpp | |
| parent | 7b9184bff458d98daeea2800a66aa501f70738f9 (diff) | |
Fixed unsafe lock upon safe media volume
Safe media volume uses lock as Integer.
But it is not safe since the Integer value is changed.
disableSafeMediaVolume()
   synchronized (mSafeMediaVolumeState)  // step. 1
      setSafeMediaVolumeEnabled()
         mSafeMediaVolumeState = SAFE_MEDIA_VOLUME_ACTIVE  // step. 2
      ...
      onSetStreamVolume(mPendingVolumeCommand.mStreamType, // step.4
      -> mPendingVolumeCommand is set as null by step.3
      -> it causes NPE and reboot
------------
setStreamVolume()
   synchronized (mSafeMediaVolumeState)
   -> mSafeMediaVolumeState was changed by step.2
   -> so that it would go next step
      mPendingVolumeCommand = null;  // step. 3
Test: Build Pass, manual test, change volume
Change-Id: I33f473d42ccbf0f9b177c6886622ecc2f8020f8d
Diffstat (limited to 'libs/hwui/ProgramCache.cpp')
0 files changed, 0 insertions, 0 deletions