Make ImageWriter and PatchOat helper classes nested.
Nested classes are better for encapsulation. For example,
we've had an art::FixupRootVisitor in both image_writer.cc
and patchoat.cc and we didn't get an ODR violation only
because these two files are never used in the same process.
Test: Rely on the TreeHugger.
Change-Id: I39a86994923a9c0faa5f05d8c9ede982ce9c0c4c
diff --git a/compiler/image_writer.cc b/compiler/image_writer.cc
index 51ef440..d7b7403 100644
--- a/compiler/image_writer.cc
+++ b/compiler/image_writer.cc
@@ -697,7 +697,7 @@
return true;
}
-class ComputeLazyFieldsForClassesVisitor : public ClassVisitor {
+class ImageWriter::ComputeLazyFieldsForClassesVisitor : public ClassVisitor {
public:
bool operator()(ObjPtr<Class> c) OVERRIDE REQUIRES_SHARED(Locks::mutator_lock_) {
StackHandleScope<1> hs(Thread::Current());
@@ -837,7 +837,7 @@
return true;
}
-class NonImageClassesVisitor : public ClassVisitor {
+class ImageWriter::NonImageClassesVisitor : public ClassVisitor {
public:
explicit NonImageClassesVisitor(ImageWriter* image_writer) : image_writer_(image_writer) {}
@@ -1701,7 +1701,7 @@
return reinterpret_cast<ArtMethod*>(image_info.image_begin_ + it->second.offset);
}
-class FixupRootVisitor : public RootVisitor {
+class ImageWriter::FixupRootVisitor : public RootVisitor {
public:
explicit FixupRootVisitor(ImageWriter* image_writer) : image_writer_(image_writer) {
}
@@ -1944,7 +1944,7 @@
}
// Rewrite all the references in the copied object to point to their image address equivalent
-class FixupVisitor {
+class ImageWriter::FixupVisitor {
public:
FixupVisitor(ImageWriter* image_writer, Object* copy) : image_writer_(image_writer), copy_(copy) {
}
@@ -1980,7 +1980,7 @@
mirror::Object* const copy_;
};
-class FixupClassVisitor FINAL : public FixupVisitor {
+class ImageWriter::FixupClassVisitor FINAL : public FixupVisitor {
public:
FixupClassVisitor(ImageWriter* image_writer, Object* copy) : FixupVisitor(image_writer, copy) {
}
@@ -2045,7 +2045,7 @@
}
}
-class NativeLocationVisitor {
+class ImageWriter::NativeLocationVisitor {
public:
explicit NativeLocationVisitor(ImageWriter* image_writer) : image_writer_(image_writer) {}