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

Commit ae4360f3 authored by Naomi Luis's avatar Naomi Luis Committed by Steve Kondik
Browse files

frameworks/base: Destroy the overlay even if there is an error

Allow the overlay object to be destroyed whenever the destroy is
invoked. Currently the destroy call returns if there is an error
encountered, which results in open data and control channels.

Change-Id: I1f2ef4ebb5fb1dcabf05ab50b5bbf6e5e240a63a
parent 13a2423b
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -103,7 +103,6 @@ void* Overlay::getBufferAddress(overlay_buffer_t buffer)
}

void Overlay::destroy() {  
    if (mStatus != NO_ERROR) return;

    // Must delete the objects in reverse creation order, thus the
    //  data side must be closed first and then the destroy send to
@@ -111,9 +110,15 @@ void Overlay::destroy() {
    if (mOverlayData) {
        overlay_data_close(mOverlayData);
        mOverlayData = NULL;
    } else {
        LOGD("Overlay::destroy mOverlayData is NULL");
    }

    if (mOverlayRef != 0) {
        mOverlayRef->mOverlayChannel->destroy();
    } else {
        LOGD("Overlay::destroy mOverlayRef is NULL");
    }
}

status_t Overlay::getStatus() const {