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

Commit d3788c2f authored by Stan Iliev's avatar Stan Iliev Committed by Automerger Merge Worker
Browse files

Fix TextureView calling eglCreateImage with a destructed buffer am: df8a0739 am: c7481bbe

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12174650

Change-Id: Ia8330c8638521421c2c712337663b6e513ad8d1b
parents f0c38886 c7481bbe
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -79,6 +79,8 @@ typedef int (*ASurfaceTexture_fenceWait)(int fence, void* fencePassThroughHandle

/**
 * ASurfaceTexture_dequeueBuffer returns the next available AHardwareBuffer.
 * The caller gets ownership of the buffer and need to release it with
 * AHardwareBuffer_release.
 */
AHardwareBuffer* ASurfaceTexture_dequeueBuffer(ASurfaceTexture* st, int* outSlotid,
                                               android_dataspace* outDataspace,
+9 −1
Original line number Diff line number Diff line
@@ -208,7 +208,15 @@ AHardwareBuffer* ASurfaceTexture_dequeueBuffer(ASurfaceTexture* st, int* outSlot
            *outNewContent = true;
        }
    } while (buffer.get() && (!queueEmpty));
    return reinterpret_cast<AHardwareBuffer*>(buffer.get());
    AHardwareBuffer* result = nullptr;
    if (buffer.get()) {
      result = buffer->toAHardwareBuffer();
      // add a reference to keep the hardware buffer alive, even if
      // BufferQueueProducer is disconnected. This is needed, because
      // sp reference is destroyed at the end of this function.
      AHardwareBuffer_acquire(result);
    }
    return result;
}

} // namespace android