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

Commit c2b3e1c7 authored by Steven Moreland's avatar Steven Moreland Committed by android-build-merger
Browse files

Merge "Fix order of hidl unlinkToDeath." am: 720d797c

am: 77cc7926

Change-Id: Id136df0261159884b4d31704ab1747c6d2e5c213
parents bc7b84e4 77cc7926
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -189,8 +189,7 @@ void HwBinderDeathRecipientList::add(const sp<HwBinderDeathRecipient>& recipient
void HwBinderDeathRecipientList::remove(const sp<HwBinderDeathRecipient>& recipient) {
    AutoMutex _l(mLock);

    List< sp<HwBinderDeathRecipient> >::iterator iter;
    for (iter = mList.begin(); iter != mList.end(); iter++) {
    for (auto iter = mList.begin(); iter != mList.end(); iter++) {
        if (*iter == recipient) {
            mList.erase(iter);
            return;
@@ -201,12 +200,13 @@ void HwBinderDeathRecipientList::remove(const sp<HwBinderDeathRecipient>& recipi
sp<HwBinderDeathRecipient> HwBinderDeathRecipientList::find(jobject recipient) {
    AutoMutex _l(mLock);

    for (const sp<HwBinderDeathRecipient>& deathRecipient : mList) {
        if (deathRecipient->matches(recipient)) {
            return deathRecipient;
    for(auto iter = mList.rbegin(); iter != mList.rend(); iter++) {
        if ((*iter)->matches(recipient)) {
            return (*iter);
        }
    }
    return NULL;

    return nullptr;
}

Mutex& HwBinderDeathRecipientList::lock() {
+4 −2
Original line number Diff line number Diff line
@@ -20,9 +20,9 @@
#include <android-base/macros.h>
#include <hwbinder/Binder.h>
#include <jni.h>
#include <utils/List.h>
#include <utils/Mutex.h>
#include <utils/RefBase.h>
#include <vector>

namespace android {

@@ -33,7 +33,7 @@ namespace android {
class HwBinderDeathRecipient;

class HwBinderDeathRecipientList : public RefBase {
    List< sp<HwBinderDeathRecipient> > mList;
    std::vector<sp<HwBinderDeathRecipient>> mList;
    Mutex mLock;

public:
@@ -42,6 +42,8 @@ public:

    void add(const sp<HwBinderDeathRecipient>& recipient);
    void remove(const sp<HwBinderDeathRecipient>& recipient);

    // finds the most recently added matching death recipient
    sp<HwBinderDeathRecipient> find(jobject recipient);

    Mutex& lock();  // Use with care; specifically for mutual exclusion during binder death