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

Commit 6709cf43 authored by Steven Moreland's avatar Steven Moreland
Browse files

libbinder: RPC simplify flush commands

This logic was a bit wonky, and devinmoore@ suggested an improvement,
but I delayed fixing it given that it was in a large stack of CLs.

Bug: N/A
Test: binderRpcTest
Change-Id: Ie1a797a88cba5f811c6137c4ce95aee87bd2a3ff
parent a7e51752
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -862,12 +862,6 @@ processTransactInternalTailCall:
        }
    }

    // Binder refs are flushed for oneway calls only after all calls which are
    // built up are executed. Otherwise, they fill up the binder buffer.
    if (addr != 0 && replyStatus == OK && !oneway) {
        replyStatus = flushExcessBinderRefs(session, addr, target);
    }

    if (oneway) {
        if (replyStatus != OK) {
            ALOGW("Oneway call failed with error: %d", replyStatus);
@@ -926,6 +920,12 @@ processTransactInternalTailCall:
        return OK;
    }

    // Binder refs are flushed for oneway calls only after all calls which are
    // built up are executed. Otherwise, they fill up the binder buffer.
    if (addr != 0 && replyStatus == OK) {
        replyStatus = flushExcessBinderRefs(session, addr, target);
    }

    LOG_ALWAYS_FATAL_IF(std::numeric_limits<int32_t>::max() - sizeof(RpcWireHeader) -
                                        sizeof(RpcWireReply) <
                                reply.dataSize(),