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

Commit ab594a71 authored by Jeff Tinker's avatar Jeff Tinker Committed by android-build-merger
Browse files

Merge "Fix failure to check HIDL return status" into oc-dr1-dev

am: ddef08e7

Change-Id: Ic441d0866af810504bf99d746c77d02e95b1f035
parents ddc0123d ddef08e7
Loading
Loading
Loading
Loading
+23 −11
Original line number Diff line number Diff line
@@ -395,9 +395,12 @@ status_t DrmHal::createPlugin(const uint8_t uuid[16],

    if (mPlugin == NULL) {
        mInitCheck = ERROR_UNSUPPORTED;
    } else {
        if (!mPlugin->setListener(this).isOk()) {
            mInitCheck = DEAD_OBJECT;
        } else {
            mInitCheck = OK;
        mPlugin->setListener(this);
        }
    }

    return mInitCheck;
@@ -411,12 +414,14 @@ status_t DrmHal::destroyPlugin() {
    }

    setListener(NULL);
    mInitCheck = NO_INIT;

    if (mPlugin != NULL) {
        mPlugin->setListener(NULL);
        if (!mPlugin->setListener(NULL).isOk()) {
            mInitCheck = DEAD_OBJECT;
        }
    }
    mPlugin.clear();
    mInitCheck = NO_INIT;

    return OK;
}

@@ -472,12 +477,15 @@ status_t DrmHal::closeSession(Vector<uint8_t> const &sessionId) {
        return mInitCheck;
    }

    Status status = mPlugin->closeSession(toHidlVec(sessionId));
    Return<Status> status = mPlugin->closeSession(toHidlVec(sessionId));
    if (status.isOk()) {
        if (status == Status::OK) {
            DrmSessionManager::Instance()->removeSession(sessionId);
        }
        return toStatusT(status);
    }
    return DEAD_OBJECT;
}

status_t DrmHal::getKeyRequest(Vector<uint8_t> const &sessionId,
        Vector<uint8_t> const &initData, String8 const &mimeType,
@@ -962,12 +970,16 @@ status_t DrmHal::signRSA(Vector<uint8_t> const &sessionId,
void DrmHal::binderDied(const wp<IBinder> &the_late_who __unused)
{
    Mutex::Autolock autoLock(mLock);

    setListener(NULL);
    mInitCheck = NO_INIT;

    if (mPlugin != NULL) {
        mPlugin->setListener(NULL);
        if (!mPlugin->setListener(NULL).isOk()) {
            mInitCheck = DEAD_OBJECT;
        }
    }
    mPlugin.clear();
    mInitCheck = NO_INIT;
}

void DrmHal::writeByteArray(Parcel &obj, hidl_vec<uint8_t> const &vec)