Refine freeBuffer in Mapper 2.0
When users call Mapper:freeBuffer, Mapper will erase buffer handle from mBufferHandles. No matter the result of free buffer handle returned from gralloc, buffer handle is removed from mBufferHandles. This means that a buffer handle can not be freed twice, even if it fail to be freed at the first time. Because users will receive nullptr when they call freeBuffer to free the same bufferHandle at the second time. When freeBuffer is called, Mapper only looks for input buffer in mBufferHandles instead of erasing it from mBufferHandles. If the result of freeBuffer returned by gralloc is NONE, then remove the buffer handle from mBufferHandles. Test: Manual Bug: 141145482 Change-Id: I4e27f54eb219f23a5844d6b440d7160b296c31e2
Loading
Please register or sign in to comment