summaryrefslogtreecommitdiff
path: root/runtime/class_table.h
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2015-07-28 17:23:28 -0700
committer Mathieu Chartier <mathieuc@google.com> 2015-07-29 10:01:59 -0700
commite0671ce5a6cb34e44e3afefa8e29c0c3e30d2855 (patch)
tree124d68a72435aebb5698e068c12555f121282cca /runtime/class_table.h
parentaac046772b6d0b8dd23f3296fd82b29ef35dca25 (diff)
Clean up class visitors
Move from function pointers to virtual function visitors. Change-Id: I68cb83c1d2ed9b5a89f8e534fe7ca4bbc1c91f45
Diffstat (limited to 'runtime/class_table.h')
-rw-r--r--runtime/class_table.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/runtime/class_table.h b/runtime/class_table.h
index af25131ab4..252a47dd25 100644
--- a/runtime/class_table.h
+++ b/runtime/class_table.h
@@ -36,7 +36,12 @@ namespace mirror {
class ClassLoader;
} // namespace mirror
-typedef bool (ClassVisitor)(mirror::Class* c, void* arg);
+class ClassVisitor {
+ public:
+ virtual ~ClassVisitor() {}
+ // Return true to continue visiting.
+ virtual bool Visit(mirror::Class* klass) = 0;
+};
// Each loader has a ClassTable
class ClassTable {
@@ -66,7 +71,7 @@ class ClassTable {
REQUIRES(Locks::classlinker_classes_lock_) SHARED_REQUIRES(Locks::mutator_lock_);
// Return false if the callback told us to exit.
- bool Visit(ClassVisitor* visitor, void* arg)
+ bool Visit(ClassVisitor* visitor)
REQUIRES(Locks::classlinker_classes_lock_) SHARED_REQUIRES(Locks::mutator_lock_);
mirror::Class* Lookup(const char* descriptor, size_t hash)