Sweep the monitor list.
Change-Id: I343261206f8bbabd245b404dd95d532255e5d870
diff --git a/src/intern_table_test.cc b/src/intern_table_test.cc
index 3f9fab0..d9a6a45 100644
--- a/src/intern_table_test.cc
+++ b/src/intern_table_test.cc
@@ -36,9 +36,9 @@
EXPECT_EQ(2U, t.Size());
}
-class TestPredicate : public InternTable::Predicate {
+class TestPredicate {
public:
- bool operator()(const String* s) const {
+ bool IsMarked(const Object* s) const {
bool erased = false;
typedef std::vector<const String*>::iterator It; // TODO: C++0x auto
for (It it = expected_.begin(), end = expected_.end(); it != end; ++it) {
@@ -49,7 +49,7 @@
}
}
EXPECT_TRUE(erased);
- return true;
+ return false;
}
void Expect(const String* s) {
@@ -64,7 +64,11 @@
mutable std::vector<const String*> expected_;
};
-TEST_F(InternTableTest, RemoveWeakIf) {
+bool IsMarked(const Object* object, void* arg) {
+ return reinterpret_cast<TestPredicate*>(arg)->IsMarked(object);
+}
+
+TEST_F(InternTableTest, SweepInternTableWeaks) {
InternTable t;
t.InternStrong(3, "foo");
t.InternStrong(3, "bar");
@@ -77,7 +81,7 @@
TestPredicate p;
p.Expect(s0);
p.Expect(s1);
- t.RemoveWeakIf(p);
+ t.SweepInternTableWeaks(IsMarked, &p);
EXPECT_EQ(2U, t.Size());