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

Commit 5ca8557e authored by Hongguang Chen's avatar Hongguang Chen Committed by Android (Google) Code Review
Browse files

Merge "Detach callbacks when closing filter."

parents 5714689f 88d37aff
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -337,6 +337,9 @@ TunerFilter::~TunerFilter() {
        }
    }

    if (mFilterCallback != nullptr) {
        mFilterCallback->detachCallbacks();
    }
    auto res = mFilter->close();
    mFilter = nullptr;
    mStarted = false;
@@ -470,6 +473,12 @@ void TunerFilter::FilterCallback::detachSharedFilterCallback() {
    }
}

void TunerFilter::FilterCallback::detachCallbacks() {
    Mutex::Autolock _l(mCallbackLock);
    mOriginalCallback = nullptr;
    mTunerFilterCallback = nullptr;
}

}  // namespace tuner
}  // namespace tv
}  // namespace media
+1 −0
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ public:
        void sendSharedFilterStatus(int32_t status);
        void attachSharedFilterCallback(const shared_ptr<ITunerFilterCallback>& in_cb);
        void detachSharedFilterCallback();
        void detachCallbacks();

    private:
        shared_ptr<ITunerFilterCallback> mTunerFilterCallback;
+9 −0
Original line number Diff line number Diff line
@@ -510,6 +510,9 @@ TunerHidlFilter::~TunerHidlFilter() {
        }
    }

    if (mFilterCallback != nullptr) {
        mFilterCallback->detachCallbacks();
    }
    HidlResult res = mFilter->close();
    mFilter = nullptr;
    mFilter_1_1 = nullptr;
@@ -970,6 +973,12 @@ void TunerHidlFilter::FilterCallback::detachSharedFilterCallback() {
    }
}

void TunerHidlFilter::FilterCallback::detachCallbacks() {
    Mutex::Autolock _l(mCallbackLock);
    mOriginalCallback = nullptr;
    mTunerFilterCallback = nullptr;
}

/////////////// FilterCallback Helper Methods ///////////////////////
void TunerHidlFilter::FilterCallback::getAidlFilterEvent(
        const vector<HidlDemuxFilterEvent::Event>& events,
+1 −0
Original line number Diff line number Diff line
@@ -129,6 +129,7 @@ public:
        void sendSharedFilterStatus(int32_t status);
        void attachSharedFilterCallback(const shared_ptr<ITunerFilterCallback>& in_cb);
        void detachSharedFilterCallback();
        void detachCallbacks();

    private:
        void getAidlFilterEvent(const vector<HidlDemuxFilterEvent::Event>& events,