summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2020-02-16 17:19:42 +0000
committer Steven Moreland <smoreland@google.com> 2020-02-16 17:19:42 +0000
commit0235b3260bff898af9eac1aed6eba577d304c88e (patch)
tree5c25dc72e7798bff526cb861227907b60f4f20e7
parent288f52faec5f2b235fa2885c578921a7e5e4dedf (diff)
parent1a4c7aee2622209968eaa43937e60f2cebfc29e6 (diff)
Merge "libbinder_ndk: private SharedRefBase construction" am: 1a4c7aee26
Change-Id: Ib02d751989033699d7ab99426253e0d6bd4fdac2
-rw-r--r--libs/binder/ndk/include_ndk/android/binder_interface_utils.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/binder/ndk/include_ndk/android/binder_interface_utils.h b/libs/binder/ndk/include_ndk/android/binder_interface_utils.h
index 7331ba20c4..e6b743ba3c 100644
--- a/libs/binder/ndk/include_ndk/android/binder_interface_utils.h
+++ b/libs/binder/ndk/include_ndk/android/binder_interface_utils.h
@@ -86,9 +86,15 @@ class SharedRefBase {
return t->template ref<T>();
}
+ static void operator delete(void* p) { std::free(p); }
+
private:
std::once_flag mFlagThis;
std::weak_ptr<SharedRefBase> mThis;
+
+ // Use 'SharedRefBase::make<T>(...)' to make. SharedRefBase has implicit
+ // ownership. Making this operator private to avoid double-ownership.
+ static void* operator new(size_t s) { return std::malloc(s); }
};
/**