Revert "ConsumerBase: free buffers outside the lock"

This reverts commit b21a4e3b5f7f07ed160ca6e1809313e2a8e2a6a4.
diff --git a/libs/gui/ConsumerBase.cpp b/libs/gui/ConsumerBase.cpp
index cfc0293..624d7e0 100644
--- a/libs/gui/ConsumerBase.cpp
+++ b/libs/gui/ConsumerBase.cpp
@@ -109,35 +109,21 @@
 }
 
 void ConsumerBase::onBuffersReleased() {
-    sp<GraphicBuffer> bufRefs[BufferQueue::NUM_BUFFER_SLOTS];
+    Mutex::Autolock lock(mMutex);
 
-    { // Scope for the lock
-        Mutex::Autolock lock(mMutex);
+    CB_LOGV("onBuffersReleased");
 
-        CB_LOGV("onBuffersReleased");
-
-        if (mAbandoned) {
-            // Nothing to do if we're already abandoned.
-            return;
-        }
-
-        uint32_t mask = 0;
-        mBufferQueue->getReleasedBuffers(&mask);
-        for (int i = 0; i < BufferQueue::NUM_BUFFER_SLOTS; i++) {
-            if (mask & (1 << i)) {
-                // Grab a local reference to the buffers so that they don't
-                // get freed while the lock is held.
-                bufRefs[i] = mSlots[i].mGraphicBuffer;
-
-                freeBufferLocked(i);
-            }
-        }
+    if (mAbandoned) {
+        // Nothing to do if we're already abandoned.
+        return;
     }
 
-    // Clear the local buffer references.  This would happen automatically
-    // when the array gets dtor'd, but I'm doing it explicitly for clarity.
+    uint32_t mask = 0;
+    mBufferQueue->getReleasedBuffers(&mask);
     for (int i = 0; i < BufferQueue::NUM_BUFFER_SLOTS; i++) {
-        bufRefs[i].clear();
+        if (mask & (1 << i)) {
+            freeBufferLocked(i);
+        }
     }
 }