Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f164fe8 authored by Gloria Wang's avatar Gloria Wang
Browse files

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
parent 070ce94b
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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);