diff options
author | Gloria Wang <gwang@google.com> | 2011-08-01 14:01:29 -0700 |
---|---|---|
committer | Gloria Wang <gwang@google.com> | 2011-08-01 14:01:29 -0700 |
commit | de162ff337723798381890151247b129c4fbe314 (patch) | |
tree | 46aac4c1ff7e01cd03939478e26f61599e8977b5 /media/libmedia/IMediaPlayer.cpp | |
parent | 288b66b60c9b3af3d84408885d0a4030c45eea9a (diff) | |
download | frameworks_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.cpp | 8 |
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); |