diff options
| -rw-r--r-- | libs/binder/ndk/include_ndk/android/binder_interface_utils.h | 9 |
1 files changed, 9 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 a133d490a4..6782ce0c3a 100644 --- a/libs/binder/ndk/include_ndk/android/binder_interface_utils.h +++ b/libs/binder/ndk/include_ndk/android/binder_interface_utils.h @@ -56,6 +56,15 @@ public: return std::static_pointer_cast<CHILD>(ref()); } + /** + * Convenience method for making an object directly with a reference. + */ + template<class T, class... Args> + static std::shared_ptr<T> make(Args&&... args) { + T* t = new T(std::forward<Args>(args)...); + return t->template ref<T>(); + } + private: std::once_flag mFlagThis; std::weak_ptr<SharedRefBase> mThis; |