summaryrefslogtreecommitdiffstats
path: root/base/memory
diff options
context:
space:
mode:
authorgavinp@chromium.org <gavinp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-04 21:51:40 +0000
committergavinp@chromium.org <gavinp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-04 21:51:40 +0000
commitd0991d940586002a95c4312efa6509582b5be22f (patch)
tree3d86e6795c5a3d73c5959f8140b3271cb09eb36a /base/memory
parent44d561bb6a8438391737751bbfc3cd774b892d6c (diff)
downloadchromium_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.cc19
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) {