summaryrefslogtreecommitdiff
path: root/libutils/StrongPointer_test.cpp
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2020-02-18 14:03:05 -0800
committerSteven Moreland <smoreland@google.com>2020-02-20 17:21:27 -0800
commit401d69aa946b68c3d58f46c1c12b1ef5533025a5 (patch)
tree8c7b5bebe01101ccb74a7c3fb7d1c28e6a0b3fed /libutils/StrongPointer_test.cpp
parent2dd81da3b48f37ba82db6dd70b8e22dd688086e0 (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.cpp8
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);