From c4cc584bbd031b94c37912d8c5e340b24ff31b57 Mon Sep 17 00:00:00 2001 From: Wonsik Kim Date: Thu, 20 Mar 2014 15:42:03 +0900 Subject: Clarify ownership for NativeHandle::mHandle Change-Id: I0835278df1aa78f10d5493d7ef2c9e4a15c0fee9 --- libutils/NativeHandle.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'libutils/NativeHandle.cpp') diff --git a/libutils/NativeHandle.cpp b/libutils/NativeHandle.cpp index 6632851af..e4daca7ff 100644 --- a/libutils/NativeHandle.cpp +++ b/libutils/NativeHandle.cpp @@ -19,17 +19,20 @@ namespace android { -sp NativeHandle::create(native_handle_t* handle) { - return handle ? new NativeHandle(handle) : NULL; +sp NativeHandle::create( + native_handle_t* handle, bool ownsHandle) { + return handle ? new NativeHandle(handle, ownsHandle) : NULL; } -NativeHandle::NativeHandle(native_handle_t* handle) -: mHandle(handle) +NativeHandle::NativeHandle(native_handle_t* handle, bool ownsHandle) +: mHandle(handle), mOwnsHandle(ownsHandle) {} NativeHandle::~NativeHandle() { - native_handle_close(mHandle); - native_handle_delete(mHandle); + if (mOwnsHandle) { + native_handle_close(mHandle); + native_handle_delete(mHandle); + } } } // namespace android -- cgit v1.2.3-54-g00ecf