diff options
| -rw-r--r-- | libs/gui/IGraphicBufferProducer.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/gui/IGraphicBufferProducer.cpp b/libs/gui/IGraphicBufferProducer.cpp index 9dde15dd0e..14eca43918 100644 --- a/libs/gui/IGraphicBufferProducer.cpp +++ b/libs/gui/IGraphicBufferProducer.cpp @@ -781,6 +781,10 @@ status_t BnGraphicBufferProducer::onTransact( int result = dequeueBuffer(&buf, &fence, width, height, format, usage, &bufferAge, getTimestamps ? &frameTimestamps : nullptr); + if (fence == nullptr) { + ALOGE("dequeueBuffer returned a NULL fence, setting to Fence::NO_FENCE"); + fence = Fence::NO_FENCE; + } reply->writeInt32(buf); reply->write(*fence); reply->writeUint64(bufferAge); @@ -963,6 +967,10 @@ status_t BnGraphicBufferProducer::onTransact( ALOGE("getLastQueuedBuffer failed to write buffer: %d", result); return result; } + if (fence == nullptr) { + ALOGE("getLastQueuedBuffer returned a NULL fence, setting to Fence::NO_FENCE"); + fence = Fence::NO_FENCE; + } result = reply->write(*fence); if (result != NO_ERROR) { ALOGE("getLastQueuedBuffer failed to write fence: %d", result); |