Use ANDROID_NATIVE_UNSIGNED_CAST() in GraphicBufferMapper::lockAsync() and GraphicBuffer::lockAsync()
If bit 31 of the return value of android_convertGralloc1To0Usage() is 1,
the high 32 bits of "usage" is all 1.
To fix, add ANDROID_NATIVE_UNSIGNED_CAST().
Change-Id: Ie8fe138e4626a179284f079d728e1fd14d83b130
Signed-off-by: Fang Hui <hui.fang@nxp.com>
diff --git a/libs/ui/GraphicBufferMapper.cpp b/libs/ui/GraphicBufferMapper.cpp
index b6ab2f5..7b5a27d 100644
--- a/libs/ui/GraphicBufferMapper.cpp
+++ b/libs/ui/GraphicBufferMapper.cpp
@@ -208,8 +208,10 @@
status_t GraphicBufferMapper::lockAsync(buffer_handle_t handle, uint64_t producerUsage,
uint64_t consumerUsage, const Rect& bounds, void** vaddr,
int fenceFd) {
- return lockAsync(handle, android_convertGralloc1To0Usage(producerUsage, consumerUsage), bounds,
- vaddr, fenceFd);
+ return lockAsync(handle,
+ ANDROID_NATIVE_UNSIGNED_CAST(
+ android_convertGralloc1To0Usage(producerUsage, consumerUsage)),
+ bounds, vaddr, fenceFd);
}
status_t GraphicBufferMapper::lockAsyncYCbCr(buffer_handle_t handle, uint32_t usage,