summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2020-02-16 17:05:48 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2020-02-16 17:05:48 +0000
commit1a4c7aee2622209968eaa43937e60f2cebfc29e6 (patch)
treef8a8c3162a464e73a99e9bafe737f1e6d0a726f1
parent51c6a7c8a423ca48d4287c715cd2beffa1c061ad (diff)
parent10d9ddf2e3da3ba3a425fb8396aaaec728e5fbdb (diff)
Merge "libbinder_ndk: private SharedRefBase construction"
-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); }
};
/**