diff options
author | gavinp@chromium.org <gavinp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-04 21:51:40 +0000 |
---|---|---|
committer | gavinp@chromium.org <gavinp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-04 21:51:40 +0000 |
commit | d0991d940586002a95c4312efa6509582b5be22f (patch) | |
tree | 3d86e6795c5a3d73c5959f8140b3271cb09eb36a /base/memory | |
parent | 44d561bb6a8438391737751bbfc3cd774b892d6c (diff) | |
download | chromium_src-d0991d940586002a95c4312efa6509582b5be22f.zip chromium_src-d0991d940586002a95c4312efa6509582b5be22f.tar.gz chromium_src-d0991d940586002a95c4312efa6509582b5be22f.tar.bz2 |
Clean up ScopedVectorTest's LifeCycleObject.
The scoped_ptr<LifeCycleObject> was unncessary and confusing. The LifeCycleWatcher safely owns its LifeCycleObject and deletes it. The scoped_ptr made things a bit confusing even, since the only reason we weren't getting a double delete was because the scoped_ptr had an (ever so) slightly narrower scope than watcher.
Making the LifeCycleObject mostly private should encourage future callers not to add scary aliases.
R=willchan@chromium.org
BUG=None
Review URL: https://chromiumcodereview.appspot.com/11416166
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171058 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/memory')
-rw-r--r-- | base/memory/scoped_vector_unittest.cc | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/base/memory/scoped_vector_unittest.cc b/base/memory/scoped_vector_unittest.cc index 17405e2..6eefbff 100644 --- a/base/memory/scoped_vector_unittest.cc +++ b/base/memory/scoped_vector_unittest.cc @@ -23,16 +23,18 @@ class LifeCycleObject { virtual ~Observer() {} }; - explicit LifeCycleObject(Observer* observer) - : observer_(observer) { - observer_->OnLifeCycleConstruct(this); - } - ~LifeCycleObject() { observer_->OnLifeCycleDestroy(this); } private: + friend class LifeCycleWatcher; + + explicit LifeCycleObject(Observer* observer) + : observer_(observer) { + observer_->OnLifeCycleConstruct(this); + } + Observer* observer_; DISALLOW_COPY_AND_ASSIGN(LifeCycleObject); @@ -115,19 +117,18 @@ TEST(ScopedVectorTest, Clear) { EXPECT_EQ(LC_CONSTRUCTED, watcher.life_cycle_state()); scoped_vector.clear(); EXPECT_EQ(LC_DESTROYED, watcher.life_cycle_state()); - EXPECT_EQ(static_cast<size_t>(0), scoped_vector.size()); + EXPECT_TRUE(scoped_vector.empty()); } TEST(ScopedVectorTest, WeakClear) { LifeCycleWatcher watcher; EXPECT_EQ(LC_INITIAL, watcher.life_cycle_state()); ScopedVector<LifeCycleObject> scoped_vector; - scoped_ptr<LifeCycleObject> object(watcher.NewLifeCycleObject()); - scoped_vector.push_back(object.get()); + scoped_vector.push_back(watcher.NewLifeCycleObject()); EXPECT_EQ(LC_CONSTRUCTED, watcher.life_cycle_state()); scoped_vector.weak_clear(); EXPECT_EQ(LC_CONSTRUCTED, watcher.life_cycle_state()); - EXPECT_EQ(static_cast<size_t>(0), scoped_vector.size()); + EXPECT_TRUE(scoped_vector.empty()); } TEST(ScopedVectorTest, ResizeShrink) { |