void BufferManager::dump(Dump& d) { d.append("Buffer Manager status: pool size %d\n", mBufferPool->getCacheSize()); d.append("-------------------------------------------------------------\n"); for (size_t i = 0; i < mBufferPool->getCacheSize(); i++) { BufferMapper *mapper = mBufferPool->getMapper(i); d.append("Buffer %d: handle %#x, (%dx%d), format %d, refCount %d\n", i, mapper->getHandle(), mapper->getWidth(), mapper->getHeight(), mapper->getFormat(), mapper->getRef()); } return; }
void BufferManager::freeFrameBuffer(uint32_t fbHandle) { RETURN_VOID_IF_NOT_INIT(); if (!mGralloc) { WLOGTRACE("Alloc device is not available"); return; } ssize_t index = mFrameBuffers.indexOfKey(fbHandle); if (index < 0) { ELOGTRACE("invalid kernel handle"); return; } BufferMapper *mapper = mFrameBuffers.valueAt(index); uint32_t handle = mapper->getHandle(); mapper->putFbHandle(); delete mapper; mFrameBuffers.removeItem(fbHandle); gralloc_device_free_img(mGralloc, (buffer_handle_t)handle); }