// freeBufferLocked frees up the given buffer slot.  If the slot has been
// initialized this will release the reference to the GraphicBuffer in that
// slot.  Otherwise it has no effect.
//
// Derived classes should override this method to clean up any state they
// keep per slot.  If it is overridden, the derived class's implementation
// must call ConsumerBase::freeBufferLocked.
//
// This method must be called with mMutex locked.
void ConsumerBase::freeBufferLocked(int slotIndex) {
    CB_LOGV("freeBufferLocked: slotIndex=%d", slotIndex);
    mSlots[slotIndex].mGraphicBuffer = nullptr;
    mSlots[slotIndex].mFence = Fence::NO_FENCE;
    mSlots[slotIndex].mFrameNumber = 0;
}

主要是把 slotIndexmGraphicBuffer 设置空。