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

Commit 75dbc733 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents 81f6c72f 319d5f43
Loading
Loading
Loading
Loading
+27 −16
Original line number Diff line number Diff line
@@ -407,9 +407,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;
@@ -424,12 +427,14 @@ status_t DrmHal::destroyPlugin() {
    closeOpenSessions();
    reportMetrics();
    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;
}

@@ -486,7 +491,8 @@ 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);
            for (size_t i = 0; i < mOpenSessions.size(); i++) {
@@ -499,6 +505,8 @@ status_t DrmHal::closeSession(Vector<uint8_t> const &sessionId) {
        reportMetrics();
        return toStatusT(status);
    }
    return DEAD_OBJECT;
}

status_t DrmHal::getKeyRequest(Vector<uint8_t> const &sessionId,
        Vector<uint8_t> const &initData, String8 const &mimeType,
@@ -997,11 +1005,14 @@ void DrmHal::binderDied(const wp<IBinder> &the_late_who __unused)
    Mutex::Autolock autoLock(mLock);
    closeOpenSessions();
    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)