summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Fang Hui <hui.fang@nxp.com> 2024-07-22 22:11:40 +0800
committer Fang Hui <hui.fang@nxp.com> 2024-07-25 21:31:56 +0800
commita3d7333eb90fe3a2fdfebe7bf694ee78900052c6 (patch)
tree2b2a4cd4be42caebe2e22546a8e818d175366c0e
parent454e2fef1f5756553128a2c573d34eac9a1815e7 (diff)
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>
-rw-r--r--libs/ui/GraphicBuffer.cpp4
-rw-r--r--libs/ui/GraphicBufferMapper.cpp6
2 files changed, 6 insertions, 4 deletions
diff --git a/libs/ui/GraphicBuffer.cpp b/libs/ui/GraphicBuffer.cpp
index ffb6cdb6ef..b0c6e44b2b 100644
--- a/libs/ui/GraphicBuffer.cpp
+++ b/libs/ui/GraphicBuffer.cpp
@@ -388,8 +388,8 @@ status_t GraphicBuffer::lockAsync(uint64_t inProducerUsage, uint64_t inConsumerU
}
}
- const uint64_t usage = static_cast<uint64_t>(
- android_convertGralloc1To0Usage(inProducerUsage, inConsumerUsage));
+ const uint64_t usage = static_cast<uint64_t>(ANDROID_NATIVE_UNSIGNED_CAST(
+ android_convertGralloc1To0Usage(inProducerUsage, inConsumerUsage)));
auto result = getBufferMapper().lock(handle, usage, rect, base::unique_fd{fenceFd});
diff --git a/libs/ui/GraphicBufferMapper.cpp b/libs/ui/GraphicBufferMapper.cpp
index b6ab2f5a47..7b5a27d9e1 100644
--- a/libs/ui/GraphicBufferMapper.cpp
+++ b/libs/ui/GraphicBufferMapper.cpp
@@ -208,8 +208,10 @@ status_t GraphicBufferMapper::lockAsync(buffer_handle_t handle, uint32_t usage,
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,