Clean up GC callbacks to be virtual methods
Change-Id: Ia08034a4e5931c4fcb329c3bd3c4b1f301135735
diff --git a/runtime/intern_table_test.cc b/runtime/intern_table_test.cc
index 194d0af..c987180 100644
--- a/runtime/intern_table_test.cc
+++ b/runtime/intern_table_test.cc
@@ -60,9 +60,9 @@
EXPECT_EQ(2U, t.Size());
}
-class TestPredicate {
+class TestPredicate : public IsMarkedVisitor {
public:
- bool IsMarked(const mirror::Object* s) const {
+ mirror::Object* IsMarked(mirror::Object* s) OVERRIDE SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) {
bool erased = false;
for (auto it = expected_.begin(), end = expected_.end(); it != end; ++it) {
if (*it == s) {
@@ -72,7 +72,7 @@
}
}
EXPECT_TRUE(erased);
- return false;
+ return nullptr;
}
void Expect(const mirror::String* s) {
@@ -87,13 +87,6 @@
mutable std::vector<const mirror::String*> expected_;
};
-mirror::Object* IsMarkedSweepingCallback(mirror::Object* object, void* arg) {
- if (reinterpret_cast<TestPredicate*>(arg)->IsMarked(object)) {
- return object;
- }
- return nullptr;
-}
-
TEST_F(InternTableTest, SweepInternTableWeaks) {
ScopedObjectAccess soa(Thread::Current());
InternTable t;
@@ -115,7 +108,7 @@
p.Expect(s1.Get());
{
ReaderMutexLock mu(soa.Self(), *Locks::heap_bitmap_lock_);
- t.SweepInternTableWeaks(IsMarkedSweepingCallback, &p);
+ t.SweepInternTableWeaks(&p);
}
EXPECT_EQ(2U, t.Size());