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

Commit b5d7885b authored by Steven Moreland's avatar Steven Moreland Committed by Automerger Merge Worker
Browse files

Merge "Handle JavaBBinderHolder not init w/ mockito" am: 9590eb18

parents bf20b85b 9590eb18
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -101,9 +101,18 @@ static void android_os_Parcel_markSensitive(jlong nativePtr)
static void android_os_Parcel_markForBinder(JNIEnv* env, jclass clazz, jlong nativePtr,
                                            jobject binder)
{
    LOG_ALWAYS_FATAL_IF(binder == nullptr, "Null binder specified for markForBinder");

    Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr);
    if (parcel) {
        parcel->markForBinder(ibinderForJavaObject(env, binder));
        sp<IBinder> nBinder = ibinderForJavaObject(env, binder);

        if (nBinder == nullptr) {
            ALOGE("Native binder in markForBinder is null for non-null jobject");
            return;
        }

        parcel->markForBinder(nBinder);
    }
}

+6 −0
Original line number Diff line number Diff line
@@ -798,6 +798,12 @@ sp<IBinder> ibinderForJavaObject(JNIEnv* env, jobject obj)
    if (env->IsInstanceOf(obj, gBinderOffsets.mClass)) {
        JavaBBinderHolder* jbh = (JavaBBinderHolder*)
            env->GetLongField(obj, gBinderOffsets.mObject);

        if (jbh == nullptr) {
            ALOGE("JavaBBinderHolder null on binder");
            return nullptr;
        }

        return jbh->get(env, obj);
    }