diff options
author | Steven Moreland <smoreland@google.com> | 2020-02-18 14:03:05 -0800 |
---|---|---|
committer | Steven Moreland <smoreland@google.com> | 2020-02-20 17:21:27 -0800 |
commit | 401d69aa946b68c3d58f46c1c12b1ef5533025a5 (patch) | |
tree | 8c7b5bebe01101ccb74a7c3fb7d1c28e6a0b3fed /libutils/StrongPointer_test.cpp | |
parent | 2dd81da3b48f37ba82db6dd70b8e22dd688086e0 (diff) |
libutils: introduce sp<T>::make
This is in preparation of doing what we did for SharedRefBase (hiding
operator new) so that clients can't accidentally construct
shared_ptr/unique_ptr or any other alternative memory management scheme
which would conflict with RefBase. You can see what ultimately happened
to SharedRefBase in frameworks/native CL
10d9ddf2e3da3ba3a425fb8396aaaec728e5fbdb.
The goal for this:
- promote use of 'sp<T>::make' over 'sp<T> .. = new T'
- make 'operator new' a private member of RefBase
Bug: 138956784
Test: libutils_test
Change-Id: I47f4d28edbf7534730c7b6fb1de748dd60f34e11
Diffstat (limited to 'libutils/StrongPointer_test.cpp')
-rw-r--r-- | libutils/StrongPointer_test.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/libutils/StrongPointer_test.cpp b/libutils/StrongPointer_test.cpp index 7b2e37f27..d37c1de6f 100644 --- a/libutils/StrongPointer_test.cpp +++ b/libutils/StrongPointer_test.cpp @@ -36,10 +36,8 @@ private: TEST(StrongPointer, move) { bool isDeleted; - SPFoo* foo = new SPFoo(&isDeleted); - ASSERT_EQ(0, foo->getStrongCount()); - ASSERT_FALSE(isDeleted) << "Already deleted...?"; - sp<SPFoo> sp1(foo); + sp<SPFoo> sp1 = sp<SPFoo>::make(&isDeleted); + SPFoo* foo = sp1.get(); ASSERT_EQ(1, foo->getStrongCount()); { sp<SPFoo> sp2 = std::move(sp1); @@ -65,7 +63,7 @@ TEST(StrongPointer, NullptrComparison) { TEST(StrongPointer, PointerComparison) { bool isDeleted; - sp<SPFoo> foo = new SPFoo(&isDeleted); + sp<SPFoo> foo = sp<SPFoo>::make(&isDeleted); ASSERT_EQ(foo.get(), foo); ASSERT_EQ(foo, foo.get()); ASSERT_NE(nullptr, foo); |