summaryrefslogtreecommitdiff
path: root/libs/nativewindow/AHardwareBuffer.cpp
diff options
context:
space:
mode:
author George Burgess IV <gbiv@google.com> 2021-01-20 21:06:20 -0800
committer George Burgess IV <gbiv@google.com> 2021-01-20 21:09:51 -0800
commit3a2e1ce8eaa22b57af0baca0049cd7f8d2627774 (patch)
treef07dcc818d94b2917a43684c9d5de7b4ebb2b5ff /libs/nativewindow/AHardwareBuffer.cpp
parentda4a5ca5b7cd4865c315d41fad30f56db0a1a13e (diff)
nativewindow: report errors on error to allocate a handle
At the moment, `outBuffer` won't be set if `err == 0 && gbuffer->handle != nullptr`, even though we return a zero value for `err`. This causes us to pass nullptr to AHardwareBuffer_release in AHardwareBuffer_isSupported, which isn't correct. Caught by the static analyzer: > frameworks/native/libs/nativewindow/AHardwareBuffer.cpp:394:9: warning: Null passed to a callee that requires a non-null 1st parameter [clang-analyzer-nullability.NullPassedToNonnull] This also replaces 0 with nullptr, since we're checking a pointer's value here. Bug: None Test: TreeHugger Change-Id: Id2fad234f98eda71b06419193e15cbfb5fa39bf1
Diffstat (limited to 'libs/nativewindow/AHardwareBuffer.cpp')
-rw-r--r--libs/nativewindow/AHardwareBuffer.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/nativewindow/AHardwareBuffer.cpp b/libs/nativewindow/AHardwareBuffer.cpp
index 1ec73ce961..3030068c65 100644
--- a/libs/nativewindow/AHardwareBuffer.cpp
+++ b/libs/nativewindow/AHardwareBuffer.cpp
@@ -51,13 +51,13 @@ int AHardwareBuffer_allocate(const AHardwareBuffer_Desc* desc, AHardwareBuffer**
std::string("AHardwareBuffer pid [") + std::to_string(getpid()) + "]"));
status_t err = gbuffer->initCheck();
- if (err != 0 || gbuffer->handle == 0) {
+ if (err != 0 || gbuffer->handle == nullptr) {
if (err == NO_MEMORY) {
GraphicBuffer::dumpAllocationsToSystemLog();
}
ALOGE("GraphicBuffer(w=%u, h=%u, lc=%u) failed (%s), handle=%p",
desc->width, desc->height, desc->layers, strerror(-err), gbuffer->handle);
- return err;
+ return err == 0 ? UNKNOWN_ERROR : err;
}
*outBuffer = AHardwareBuffer_from_GraphicBuffer(gbuffer.get());