summaryrefslogtreecommitdiffstats
path: root/media/libmedia/IMediaPlayer.cpp
diff options
context:
space:
mode:
authorGloria Wang <gwang@google.com>2011-08-01 14:01:29 -0700
committerGloria Wang <gwang@google.com>2011-08-01 14:01:29 -0700
commitde162ff337723798381890151247b129c4fbe314 (patch)
tree46aac4c1ff7e01cd03939478e26f61599e8977b5 /media/libmedia/IMediaPlayer.cpp
parent288b66b60c9b3af3d84408885d0a4030c45eea9a (diff)
downloadframeworks_av-de162ff337723798381890151247b129c4fbe314.zip
frameworks_av-de162ff337723798381890151247b129c4fbe314.tar.gz
frameworks_av-de162ff337723798381890151247b129c4fbe314.tar.bz2
Fix ordering assumption of argument evaluation.
No specific order is specified in the C++ standard, but the order of the calls to Parcel read commands matters. Move any calls with multiple reads to local variables. Fix for bug 5104979. Change-Id: I709aa040e990d2659e7a3a089f7a42ae812de9ff
Diffstat (limited to 'media/libmedia/IMediaPlayer.cpp')
-rw-r--r--media/libmedia/IMediaPlayer.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/media/libmedia/IMediaPlayer.cpp b/media/libmedia/IMediaPlayer.cpp
index 76a8a91..52885d2 100644
--- a/media/libmedia/IMediaPlayer.cpp
+++ b/media/libmedia/IMediaPlayer.cpp
@@ -352,7 +352,9 @@ status_t BnMediaPlayer::onTransact(
} break;
case SET_VOLUME: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
- reply->writeInt32(setVolume(data.readFloat(), data.readFloat()));
+ float leftVolume = data.readFloat();
+ float rightVolume = data.readFloat();
+ reply->writeInt32(setVolume(leftVolume, rightVolume));
return NO_ERROR;
} break;
case INVOKE: {
@@ -367,7 +369,9 @@ status_t BnMediaPlayer::onTransact(
} break;
case GET_METADATA: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
- const status_t retcode = getMetadata(data.readInt32(), data.readInt32(), reply);
+ bool update_only = static_cast<bool>(data.readInt32());
+ bool apply_filter = static_cast<bool>(data.readInt32());
+ const status_t retcode = getMetadata(update_only, apply_filter, reply);
reply->setDataPosition(0);
reply->writeInt32(retcode);
reply->setDataPosition(0);