diff options
author | 2021-09-28 20:16:31 +0000 | |
---|---|---|
committer | 2021-09-28 20:16:31 +0000 | |
commit | a7e51752c22427dc918281ea739f391aab35bf9f (patch) | |
tree | 98759a23bdc0a741cd2df8c63320bf4e6e5d5e8d /libs/binder/RpcSession.cpp | |
parent | 13ba6f3c3fef163b74f33092cdd3ed63c25e2bb3 (diff) | |
parent | d8083310534b157c7e303083df15fe9b362e4913 (diff) |
Merge changes Ieb537412,I2339a8e0
* changes:
libbinder: oneway calls delay refcounting
libbinder: dec refs include count
Diffstat (limited to 'libs/binder/RpcSession.cpp')
-rw-r--r-- | libs/binder/RpcSession.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libs/binder/RpcSession.cpp b/libs/binder/RpcSession.cpp index 38958c93cb..dafb33942a 100644 --- a/libs/binder/RpcSession.cpp +++ b/libs/binder/RpcSession.cpp @@ -217,15 +217,17 @@ status_t RpcSession::transact(const sp<IBinder>& binder, uint32_t code, const Pa } status_t RpcSession::sendDecStrong(const BpBinder* binder) { - return sendDecStrong(binder->getPrivateAccessor().rpcAddress()); + // target is 0 because this is used to free BpBinder objects + return sendDecStrongToTarget(binder->getPrivateAccessor().rpcAddress(), 0 /*target*/); } -status_t RpcSession::sendDecStrong(uint64_t address) { +status_t RpcSession::sendDecStrongToTarget(uint64_t address, size_t target) { ExclusiveConnection connection; status_t status = ExclusiveConnection::find(sp<RpcSession>::fromExisting(this), ConnectionUse::CLIENT_REFCOUNT, &connection); if (status != OK) return status; - return state()->sendDecStrong(connection.get(), sp<RpcSession>::fromExisting(this), address); + return state()->sendDecStrongToTarget(connection.get(), sp<RpcSession>::fromExisting(this), + address, target); } status_t RpcSession::readId() { |