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

Commit 0662345c authored by Chetan Kalyan's avatar Chetan Kalyan Committed by Giulio Cervera
Browse files

SurfaceFlinger: Return error on invalid buffer creation

When a buffer is re-allocated on reconfiguration, return NULL
if there is an error in re-allocation.

Also, remove warnings during compilation.

Change-Id: Ie01bfcfbb469a106ef99bf1725376e2753206708
CRs-Fixed: 337660
parent 0f6e4483
Loading
Loading
Loading
Loading
+11 −7
Original line number Original line Diff line number Diff line
@@ -105,13 +105,13 @@ SurfaceFlinger::SurfaceFlinger()
        mDebugInTransaction(0),
        mDebugInTransaction(0),
        mLastTransactionTime(0),
        mLastTransactionTime(0),
        mBootFinished(false),
        mBootFinished(false),
        mConsoleSignals(0),
#ifdef QCOM_HDMI_OUT
        mHDMIOutput(EXT_DISPLAY_OFF),
#endif
#ifdef QCOM_HARDWARE
#ifdef QCOM_HARDWARE
        mCanSkipComposition(false),
        mCanSkipComposition(false),
#endif
#endif
#ifdef QCOM_HDMI_OUT
        mConsoleSignals(0),
        mHDMIOutput(false),
#endif
        mSecureFrameBuffer(0)
        mSecureFrameBuffer(0)
{
{
    init();
    init();
@@ -2745,7 +2745,11 @@ sp<GraphicBuffer> GraphicBufferAlloc::createGraphicBuffer(uint32_t w, uint32_t h
        return 0;
        return 0;
    }
    }
#ifdef QCOM_HARDWARE
#ifdef QCOM_HARDWARE
    checkBuffer((native_handle_t *)graphicBuffer->handle, mSize, usage);
    err = checkBuffer((native_handle_t *)graphicBuffer->handle, mSize, usage);
    if (err) {
        LOGE("%s: checkBuffer failed",__FUNCTION__);
        return 0;
    }
    Mutex::Autolock _l(mLock);
    Mutex::Autolock _l(mLock);
    if (-1 != mFreedIndex) {
    if (-1 != mFreedIndex) {
        mBuffers.insertAt(graphicBuffer, mFreedIndex);
        mBuffers.insertAt(graphicBuffer, mFreedIndex);
@@ -2760,7 +2764,7 @@ sp<GraphicBuffer> GraphicBufferAlloc::createGraphicBuffer(uint32_t w, uint32_t h
#ifdef QCOM_HARDWARE
#ifdef QCOM_HARDWARE
void GraphicBufferAlloc::freeAllGraphicBuffersExcept(int bufIdx) {
void GraphicBufferAlloc::freeAllGraphicBuffersExcept(int bufIdx) {
    Mutex::Autolock _l(mLock);
    Mutex::Autolock _l(mLock);
    if (0 <= bufIdx && bufIdx < mBuffers.size()) {
    if (bufIdx >= 0 && bufIdx < (int)mBuffers.size()) {
        sp<GraphicBuffer> b(mBuffers[bufIdx]);
        sp<GraphicBuffer> b(mBuffers[bufIdx]);
        mBuffers.clear();
        mBuffers.clear();
        mBuffers.add(b);
        mBuffers.add(b);
@@ -2772,7 +2776,7 @@ void GraphicBufferAlloc::freeAllGraphicBuffersExcept(int bufIdx) {


void GraphicBufferAlloc::freeGraphicBufferAtIndex(int bufIdx) {
void GraphicBufferAlloc::freeGraphicBufferAtIndex(int bufIdx) {
     Mutex::Autolock _l(mLock);
     Mutex::Autolock _l(mLock);
     if (0 <= bufIdx && bufIdx < mBuffers.size()) {
     if (bufIdx >= 0 && bufIdx < (int)mBuffers.size()) {
        mBuffers.removeItemsAt(bufIdx);
        mBuffers.removeItemsAt(bufIdx);
        mFreedIndex = bufIdx;
        mFreedIndex = bufIdx;
     } else {
     } else {