diff options
author | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-29 06:59:03 +0000 |
---|---|---|
committer | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-29 06:59:03 +0000 |
commit | f1836f47f1c05058a211efc9ea908b502ff74eb0 (patch) | |
tree | 17b345e6e0b865e54af2ba5ea313e61054542617 /base | |
parent | 47214d887231579c4dc8f1911539a385b7aed0fe (diff) | |
download | chromium_src-f1836f47f1c05058a211efc9ea908b502ff74eb0.zip chromium_src-f1836f47f1c05058a211efc9ea908b502ff74eb0.tar.gz chromium_src-f1836f47f1c05058a211efc9ea908b502ff74eb0.tar.bz2 |
Make WeakPtr::operator* return reference instead of pointer
Reference is more suitable type for operator*'s return values.
Add test code for operator->.
BUG=None
TEST=base_unittests --gtest_filter="WeakPtrTest.Dereference"
Review URL: http://codereview.chromium.org/9455086
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124141 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/memory/weak_ptr.h | 4 | ||||
-rw-r--r-- | base/memory/weak_ptr_unittest.cc | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h index c0ba7f5..b66f024 100644 --- a/base/memory/weak_ptr.h +++ b/base/memory/weak_ptr.h @@ -171,9 +171,9 @@ class WeakPtr : public internal::WeakPtrBase { T* get() const { return ref_.is_valid() ? ptr_ : NULL; } operator T*() const { return get(); } - T* operator*() const { + T& operator*() const { DCHECK(get() != NULL); - return get(); + return *get(); } T* operator->() const { DCHECK(get() != NULL); diff --git a/base/memory/weak_ptr_unittest.cc b/base/memory/weak_ptr_unittest.cc index be28e52..8f42664 100644 --- a/base/memory/weak_ptr_unittest.cc +++ b/base/memory/weak_ptr_unittest.cc @@ -34,7 +34,7 @@ class OffThreadObjectCreator { } }; -struct Base {}; +struct Base { std::string member; }; struct Derived : Base {}; struct Producer : SupportsWeakPtr<Producer> {}; @@ -337,10 +337,12 @@ TEST(WeakPtrTest, OwnerThreadDeletesObject) { TEST(WeakPtrTest, Dereference) { Base data; + data.member = "123456"; WeakPtrFactory<Base> factory(&data); WeakPtr<Base> ptr = factory.GetWeakPtr(); EXPECT_EQ(&data, ptr.get()); - EXPECT_EQ(&data, *ptr); + EXPECT_EQ(data.member, (*ptr).member); + EXPECT_EQ(data.member, ptr->member); } } // namespace base |