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

Commit 5ea54dab authored by Steven Moreland's avatar Steven Moreland
Browse files

libbinder_ndk: make AIBinder_isRemote const.

It's a C function, so it is not const, but it now takes a const
AIBinder object.

There isn't a way to do a check on a const IBinder if it is remote. We
could store the isRemote status as a member of AIBinder to avoid this,
but this would be wasted space. A const isRemote method can't be added
to IBinder for legacy reasons.

Bug: 111445392
Test: ./ndk/runtests.sh
Change-Id: I72df61e429e06e24dcffd4158447670ec1b41d7a
parent 71cddc3c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -183,7 +183,7 @@ AIBinder* AIBinder_new(const AIBinder_Class* clazz, void* args) {
    return ret.get();
}

bool AIBinder_isRemote(AIBinder* binder) {
bool AIBinder_isRemote(const AIBinder* binder) {
    if (binder == nullptr) {
        return true;
    }
+4 −1
Original line number Diff line number Diff line
@@ -42,7 +42,10 @@ struct AIBinder : public virtual ::android::RefBase {
    virtual ABBinder* asABBinder() { return nullptr; }
    virtual ABpBinder* asABpBinder() { return nullptr; }

    bool isRemote() { return getBinder()->remoteBinder() != nullptr; }
    bool isRemote() const {
        ::android::sp<::android::IBinder> binder = const_cast<AIBinder*>(this)->getBinder();
        return binder->remoteBinder() != nullptr;
    }

private:
    // AIBinder instance is instance of this class for a local object. In order to transact on a
+1 −1
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ __attribute__((warn_unused_result)) AIBinder* AIBinder_new(const AIBinder_Class*
/**
 * If this is hosted in a process other than the current one.
 */
bool AIBinder_isRemote(AIBinder* binder);
bool AIBinder_isRemote(const AIBinder* binder);

/**
 * This can only be called if a strong reference to this object already exists in process.