From 723c48987209c93a902c29a858880b4fe340509d Mon Sep 17 00:00:00 2001 From: Yin-Chia Yeh Date: Thu, 30 Mar 2017 13:13:36 -0700 Subject: DO NOT MERGE: ConsumerBase: call freeBufferLocked when a slot is overwritten Cherrypicked from master. Test: the CL + camera service side fix pass ReprocessCaptureTest Bug: 34461678 Change-Id: Ia7863321bcb46cba53532fc1570c5facd9280aaa --- libs/gui/ConsumerBase.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libs/gui/ConsumerBase.cpp') diff --git a/libs/gui/ConsumerBase.cpp b/libs/gui/ConsumerBase.cpp index 8acdfed8f5..d4e4dc3616 100644 --- a/libs/gui/ConsumerBase.cpp +++ b/libs/gui/ConsumerBase.cpp @@ -287,6 +287,9 @@ status_t ConsumerBase::acquireBufferLocked(BufferItem *item, } if (item->mGraphicBuffer != NULL) { + if (mSlots[item->mSlot].mGraphicBuffer != NULL) { + freeBufferLocked(item->mSlot); + } mSlots[item->mSlot].mGraphicBuffer = item->mGraphicBuffer; } -- cgit v1.2.3-59-g8ed1b