From 6709cf43d19717f76b2cfbfad7dd2a64df357c08 Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Thu, 30 Sep 2021 15:21:54 -0700 Subject: 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 --- libs/binder/RpcState.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'libs') diff --git a/libs/binder/RpcState.cpp b/libs/binder/RpcState.cpp index 3ff13bcd9b..6c305c26ca 100644 --- a/libs/binder/RpcState.cpp +++ b/libs/binder/RpcState.cpp @@ -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::max() - sizeof(RpcWireHeader) - sizeof(RpcWireReply) < reply.dataSize(), -- cgit v1.2.3-59-g8ed1b