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

Commit ec3b487f authored by Amy Zhang's avatar Amy Zhang
Browse files

Avoid duplicate closing on Tuner instances

set all the successfully closed instance to null
to avoid duplicate closing on the same instance.

Test: make
Bug: 176190508
Change-Id: Ie96a5de3dcc1c40a594b4bb94bf31e546a77eb40
parent 174eb3ef
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -216,14 +216,13 @@ Result DemuxClient::disconnectCiCam() {
Result DemuxClient::close() {
    if (mTunerDemux != NULL) {
        Status s = mTunerDemux->close();
        mDemux = NULL;
        return ClientHelper::getServiceSpecificErrorCode(s);
    }

    if (mDemux != NULL) {
        Result res = mDemux->close();
        if (res == Result::SUCCESS) {
        mDemux = NULL;
        }
        return res;
    }

+6 −2
Original line number Diff line number Diff line
@@ -101,14 +101,18 @@ Result DescramblerClient::removePid(DemuxPid pid, sp<FilterClient> optionalSourc
Result DescramblerClient::close() {
    if (mTunerDescrambler != NULL) {
        Status s = mTunerDescrambler->close();
        mTunerDescrambler = NULL;
        return ClientHelper::getServiceSpecificErrorCode(s);
    }

    if (mDescrambler != NULL) {
        return mDescrambler->close();
        Result res = mDescrambler->close();
        mDescrambler = NULL;
        return res;
    }

    return Result::INVALID_STATE;}
    return Result::INVALID_STATE;
}

/////////////// DescramblerClient Helper Methods ///////////////////////

+2 −3
Original line number Diff line number Diff line
@@ -316,14 +316,13 @@ Result DvrClient::flush() {
Result DvrClient::close() {
    if (mTunerDvr != NULL) {
        Status s = mTunerDvr->close();
        mTunerDvr = NULL;
        return ClientHelper::getServiceSpecificErrorCode(s);
    }

    if (mDvr != NULL) {
        Result res = mDvr->close();
        if (res == Result::SUCCESS) {
        mDvr = NULL;
        }
        return res;
    }

+3 −3
Original line number Diff line number Diff line
@@ -261,14 +261,14 @@ Result FilterClient::close() {
    if (mTunerFilter != NULL) {
        Status s = mTunerFilter->close();
        closeAvSharedMemory();
        mTunerFilter = NULL;
        return ClientHelper::getServiceSpecificErrorCode(s);
    }

    if (mFilter != NULL) {
        Result res = mFilter->close();
        if (res == Result::SUCCESS) {
        mFilter = NULL;
        }
        mFilter_1_1 = NULL;
        closeAvSharedMemory();
        return res;
    }
+3 −4
Original line number Diff line number Diff line
@@ -311,15 +311,14 @@ Result FrontendClient::unlinkCiCamToFrontend(int ciCamId) {
Result FrontendClient::close() {
    if (mTunerFrontend != NULL) {
        Status s = mTunerFrontend->close();
        mTunerFrontend = NULL;
        return ClientHelper::getServiceSpecificErrorCode(s);
    }

    if (mFrontend != NULL) {
        Result result = mFrontend->close();
        if (result == Result::SUCCESS) {
        mFrontend = NULL;
        mFrontend_1_1 = NULL;
        }
        return result;
    }

Loading