summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authorhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-29 06:59:03 +0000
committerhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-29 06:59:03 +0000
commitf1836f47f1c05058a211efc9ea908b502ff74eb0 (patch)
tree17b345e6e0b865e54af2ba5ea313e61054542617 /base
parent47214d887231579c4dc8f1911539a385b7aed0fe (diff)
downloadchromium_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.h4
-rw-r--r--base/memory/weak_ptr_unittest.cc6
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