diff options
| author | 2020-07-11 01:11:37 +0000 | |
|---|---|---|
| committer | 2020-07-11 01:11:37 +0000 | |
| commit | f8819552bbc46fd73bc0605ce1fb1b120bac2fa0 (patch) | |
| tree | 92b217164eaf9db625d6f11e005329ee8157ebf5 | |
| parent | 99abd5c15daa606d980998272f4a371a3b8ae916 (diff) | |
Fix arguments capture in SoundEffectsHelper
The handler created for an async call must capture arguments of
the Message by value instead of capturing the instance of
Message by reference. Since Message objects are pooled for
efficiency, a possibility exists that the instance of Message is
reused later.
Bug: 160315111
Bug: 160965418
Test: atest android.media.cts.AudioManagerTest
Change-Id: I2c81b8fa9ae6653da2e6812668395d8fcd6bc6e9
| -rw-r--r-- | services/core/java/com/android/server/audio/SoundEffectsHelper.java | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/audio/SoundEffectsHelper.java b/services/core/java/com/android/server/audio/SoundEffectsHelper.java index 84d2ff85a914..27d57674e0f1 100644 --- a/services/core/java/com/android/server/audio/SoundEffectsHelper.java +++ b/services/core/java/com/android/server/audio/SoundEffectsHelper.java @@ -441,11 +441,12 @@ class SoundEffectsHelper { onUnloadSoundEffects(); break; case MSG_PLAY_EFFECT: + final int effect = msg.arg1, volume = msg.arg2; onLoadSoundEffects(new OnEffectsLoadCompleteHandler() { @Override public void run(boolean success) { if (success) { - onPlaySoundEffect(msg.arg1 /*effect*/, msg.arg2 /*volume*/); + onPlaySoundEffect(effect, volume); } } }); |