diff options
author | bungeman <bungeman@google.com> | 2016-03-03 07:50:49 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-03 07:50:49 -0800 |
commit | beab9e7ba06ea8bd01fcbfd44f2ca2ed69c8a1d9 (patch) | |
tree | 149ae269dc91baac346deeba5ec4362c19062b55 /tests/RefCntTest.cpp | |
parent | f655e9330e3e3cc3d56f19017c89d8309f2ddc36 (diff) |
Add operator* and operator safe-bool to sk_sp.
This greatly reduces the need to use '.get()' in conditionals.
Review URL: https://codereview.chromium.org/1760453004
Diffstat (limited to 'tests/RefCntTest.cpp')
-rw-r--r-- | tests/RefCntTest.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/RefCntTest.cpp b/tests/RefCntTest.cpp index bda45317bc..60a34ecf88 100644 --- a/tests/RefCntTest.cpp +++ b/tests/RefCntTest.cpp @@ -164,9 +164,31 @@ DEF_TEST(sk_sp, reporter) { check(reporter, 0, 0, 1, 0); REPORTER_ASSERT(reporter, paint.fEffect.get()->fRefCnt == 1); + if (paint.get()) { + REPORTER_ASSERT(reporter, true); + } else { + REPORTER_ASSERT(reporter, false); + } + if (!paint.get()) { + REPORTER_ASSERT(reporter, false); + } else { + REPORTER_ASSERT(reporter, true); + } + paint.set(nullptr); check(reporter, 0, 1, 1, 1); + if (paint.get()) { + REPORTER_ASSERT(reporter, false); + } else { + REPORTER_ASSERT(reporter, true); + } + if (!paint.get()) { + REPORTER_ASSERT(reporter, true); + } else { + REPORTER_ASSERT(reporter, false); + } + auto e = Create(); REPORTER_ASSERT(reporter, sizeof(e) == sizeof(void*)); @@ -180,9 +202,14 @@ DEF_TEST(sk_sp, reporter) { check(reporter, 2, 1, 2, 1); REPORTER_ASSERT(reporter, paint.fEffect.get()->fRefCnt == 3); + // Test sk_sp::operator-> delete paint.get()->method(); check(reporter, 2, 1, 2, 1); + // Test sk_sp::operator* + delete (*paint.get()).method(); + check(reporter, 2, 1, 2, 1); + paint.set(nullptr); e = nullptr; paint2.set(nullptr); |