summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mikhail Naganov <mnaganov@google.com> 2020-07-11 01:11:37 +0000
committer Mikhail Naganov <mnaganov@google.com> 2020-07-11 01:11:37 +0000
commitf8819552bbc46fd73bc0605ce1fb1b120bac2fa0 (patch)
tree92b217164eaf9db625d6f11e005329ee8157ebf5
parent99abd5c15daa606d980998272f4a371a3b8ae916 (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.java3
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);
}
}
});