Revert "Revert "libbinder: Flush excess refs after single async transaction""

This reverts commit 655d5710fdb42524376649df0ef9953437479cd6.

Reason for revert: fixed OnewayCallQueuingWithFds

Bug: 259517277
Test: binderRpcTestNoKernel --gtest_filter="*OnewayCallQueueingWithFds*" --gtest_repeat=10 --gtest_break_on_failure
Change-Id: I7c6440232dbed2b1b808de64ddb23a4292c96428
diff --git a/libs/binder/RpcState.cpp b/libs/binder/RpcState.cpp
index b27f102..1ea13f9 100644
--- a/libs/binder/RpcState.cpp
+++ b/libs/binder/RpcState.cpp
@@ -1036,8 +1036,8 @@
                 return DEAD_OBJECT;
             }
 
-            if (it->second.asyncTodo.size() == 0) return OK;
-            if (it->second.asyncTodo.top().asyncNumber == it->second.asyncNumber) {
+            if (it->second.asyncTodo.size() != 0 &&
+                it->second.asyncTodo.top().asyncNumber == it->second.asyncNumber) {
                 LOG_RPC_DETAIL("Found next async transaction %" PRIu64 " on %" PRIu64,
                                it->second.asyncNumber, addr);