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

Commit d9c4971d authored by Dan Stoza's avatar Dan Stoza
Browse files

libgui: Change detachNextBuffer to return sp<GB>

Changes Surface::detachNextBuffer to return an sp<GraphicBuffer>
instead of an ANativeWindowBuffer* to ensure that reference counting
works correctly.

Bug: 20092217
Change-Id: I3979ea6121aaf14845f0554477b778770413581e
(cherry picked from commit 8b2daa3ca29492b181fb67840640d771c4a2b3ac)
parent 63a0f428
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -179,7 +179,7 @@ public:
    virtual int unlockAndPost();

    virtual int connect(int api, const sp<IProducerListener>& listener);
    virtual int detachNextBuffer(ANativeWindowBuffer** outBuffer,
    virtual int detachNextBuffer(sp<GraphicBuffer>* outBuffer,
            sp<Fence>* outFence);
    virtual int attachBuffer(ANativeWindowBuffer*);

+2 −2
Original line number Diff line number Diff line
@@ -651,7 +651,7 @@ int Surface::disconnect(int api) {
    return err;
}

int Surface::detachNextBuffer(ANativeWindowBuffer** outBuffer,
int Surface::detachNextBuffer(sp<GraphicBuffer>* outBuffer,
        sp<Fence>* outFence) {
    ATRACE_CALL();
    ALOGV("Surface::detachNextBuffer");
@@ -670,7 +670,7 @@ int Surface::detachNextBuffer(ANativeWindowBuffer** outBuffer,
        return result;
    }

    *outBuffer = buffer.get();
    *outBuffer = buffer;
    if (fence != NULL && fence->isValid()) {
        *outFence = fence;
    } else {