ART: Clean up art_field.h
Clean up the header. Fix up other headers including the -inl file,
in an effort to prune the include graph. Fix broken transitive
includes by making includes explicit.
Test: m
Change-Id: I6ff2d6f89b741d8188e19426eccf4743fec688fc
diff --git a/compiler/debug/elf_debug_info_writer.h b/compiler/debug/elf_debug_info_writer.h
index 30d4b47..558c7d5 100644
--- a/compiler/debug/elf_debug_info_writer.h
+++ b/compiler/debug/elf_debug_info_writer.h
@@ -21,6 +21,7 @@
#include <unordered_set>
#include <vector>
+#include "art_field-inl.h"
#include "debug/dwarf/debug_abbrev_writer.h"
#include "debug/dwarf/debug_info_entry_writer.h"
#include "debug/elf_compilation_unit.h"
diff --git a/compiler/optimizing/intrinsics.cc b/compiler/optimizing/intrinsics.cc
index 6069f34..6236bd8 100644
--- a/compiler/optimizing/intrinsics.cc
+++ b/compiler/optimizing/intrinsics.cc
@@ -16,6 +16,7 @@
#include "intrinsics.h"
+#include "art_field-inl.h"
#include "art_method-inl.h"
#include "class_linker.h"
#include "driver/compiler_driver.h"
diff --git a/compiler/optimizing/reference_type_propagation.cc b/compiler/optimizing/reference_type_propagation.cc
index 39effe0..98332d3 100644
--- a/compiler/optimizing/reference_type_propagation.cc
+++ b/compiler/optimizing/reference_type_propagation.cc
@@ -16,6 +16,7 @@
#include "reference_type_propagation.h"
+#include "art_field-inl.h"
#include "art_method-inl.h"
#include "base/enums.h"
#include "class_linker-inl.h"
diff --git a/imgdiag/imgdiag.cc b/imgdiag/imgdiag.cc
index f307cbc..06a0f23 100644
--- a/imgdiag/imgdiag.cc
+++ b/imgdiag/imgdiag.cc
@@ -28,6 +28,7 @@
#include "android-base/stringprintf.h"
+#include "art_field-inl.h"
#include "art_method-inl.h"
#include "base/unix_file/fd_file.h"
#include "gc/space/image_space.h"
diff --git a/runtime/art_field-inl.h b/runtime/art_field-inl.h
index 0e00977..0de0f02 100644
--- a/runtime/art_field-inl.h
+++ b/runtime/art_field-inl.h
@@ -47,16 +47,6 @@
declaring_class_ = GcRoot<mirror::Class>(new_declaring_class);
}
-inline uint32_t ArtField::GetAccessFlags() {
- DCHECK(GetDeclaringClass()->IsLoaded() || GetDeclaringClass()->IsErroneous());
- return access_flags_;
-}
-
-inline MemberOffset ArtField::GetOffset() {
- DCHECK(GetDeclaringClass()->IsResolved());
- return MemberOffset(offset_);
-}
-
inline MemberOffset ArtField::GetOffsetDuringLinking() {
DCHECK(GetDeclaringClass()->IsLoaded() || GetDeclaringClass()->IsErroneous());
return MemberOffset(offset_);
diff --git a/runtime/art_field.cc b/runtime/art_field.cc
index 7e13104..bc728f4 100644
--- a/runtime/art_field.cc
+++ b/runtime/art_field.cc
@@ -78,5 +78,12 @@
return result;
}
+void ArtField::GetAccessFlagsDCheck() {
+ CHECK(GetDeclaringClass()->IsLoaded() || GetDeclaringClass()->IsErroneous());
+}
+
+void ArtField::GetOffsetDCheck() {
+ CHECK(GetDeclaringClass()->IsResolved());
+}
} // namespace art
diff --git a/runtime/art_field.h b/runtime/art_field.h
index 666ed8a..3789b0c 100644
--- a/runtime/art_field.h
+++ b/runtime/art_field.h
@@ -51,7 +51,12 @@
return declaring_class_.AddressWithoutBarrier();
}
- uint32_t GetAccessFlags() REQUIRES_SHARED(Locks::mutator_lock_);
+ uint32_t GetAccessFlags() REQUIRES_SHARED(Locks::mutator_lock_) {
+ if (kIsDebugBuild) {
+ GetAccessFlagsDCheck();
+ }
+ return access_flags_;
+ }
void SetAccessFlags(uint32_t new_access_flags) REQUIRES_SHARED(Locks::mutator_lock_) {
// Not called within a transaction.
@@ -80,7 +85,12 @@
}
// Offset to field within an Object.
- MemberOffset GetOffset() REQUIRES_SHARED(Locks::mutator_lock_);
+ MemberOffset GetOffset() REQUIRES_SHARED(Locks::mutator_lock_) {
+ if (kIsDebugBuild) {
+ GetOffsetDCheck();
+ }
+ return MemberOffset(offset_);
+ }
static MemberOffset OffsetOffset() {
return MemberOffset(OFFSETOF_MEMBER(ArtField, offset_));
@@ -227,6 +237,9 @@
ObjPtr<mirror::DexCache> dex_cache)
REQUIRES_SHARED(Locks::mutator_lock_);
+ void GetAccessFlagsDCheck() REQUIRES_SHARED(Locks::mutator_lock_);
+ void GetOffsetDCheck() REQUIRES_SHARED(Locks::mutator_lock_);
+
GcRoot<mirror::Class> declaring_class_;
uint32_t access_flags_ = 0;
diff --git a/runtime/art_method.cc b/runtime/art_method.cc
index a6ee7eb..7de8916 100644
--- a/runtime/art_method.cc
+++ b/runtime/art_method.cc
@@ -21,7 +21,6 @@
#include "android-base/stringprintf.h"
#include "arch/context.h"
-#include "art_field-inl.h"
#include "art_method-inl.h"
#include "base/stringpiece.h"
#include "class_linker-inl.h"
diff --git a/runtime/entrypoints/entrypoint_utils-inl.h b/runtime/entrypoints/entrypoint_utils-inl.h
index caf2e5d..e03ca79 100644
--- a/runtime/entrypoints/entrypoint_utils-inl.h
+++ b/runtime/entrypoints/entrypoint_utils-inl.h
@@ -39,6 +39,7 @@
#include "runtime.h"
#include "stack_map.h"
#include "thread.h"
+#include "well_known_classes.h"
namespace art {
diff --git a/runtime/gc/space/image_space.cc b/runtime/gc/space/image_space.cc
index ac7293d..e9f0758 100644
--- a/runtime/gc/space/image_space.cc
+++ b/runtime/gc/space/image_space.cc
@@ -25,6 +25,7 @@
#include "android-base/stringprintf.h"
#include "android-base/strings.h"
+#include "art_field-inl.h"
#include "art_method-inl.h"
#include "base/enums.h"
#include "base/macros.h"
diff --git a/runtime/mirror/class-inl.h b/runtime/mirror/class-inl.h
index d78ed7f..2247f7d 100644
--- a/runtime/mirror/class-inl.h
+++ b/runtime/mirror/class-inl.h
@@ -19,13 +19,14 @@
#include "class.h"
-#include "art_field-inl.h"
+#include "art_field.h"
#include "art_method.h"
#include "base/array_slice.h"
#include "base/length_prefixed_array.h"
+#include "class_linker-inl.h"
#include "class_loader.h"
#include "common_throws.h"
-#include "dex_file.h"
+#include "dex_file-inl.h"
#include "gc/heap-inl.h"
#include "iftable.h"
#include "object_array-inl.h"
diff --git a/runtime/mirror/class-refvisitor-inl.h b/runtime/mirror/class-refvisitor-inl.h
index ffc4af5..3d52ead 100644
--- a/runtime/mirror/class-refvisitor-inl.h
+++ b/runtime/mirror/class-refvisitor-inl.h
@@ -19,6 +19,7 @@
#include "class-inl.h"
+#include "art_field-inl.h"
#include "class_ext-inl.h"
namespace art {
diff --git a/runtime/mirror/dex_cache-inl.h b/runtime/mirror/dex_cache-inl.h
index 37a67e8..18e22ef 100644
--- a/runtime/mirror/dex_cache-inl.h
+++ b/runtime/mirror/dex_cache-inl.h
@@ -19,13 +19,15 @@
#include "dex_cache.h"
-#include "art_field-inl.h"
+#include "art_field.h"
#include "art_method.h"
#include "base/casts.h"
#include "base/enums.h"
#include "base/logging.h"
+#include "class_linker.h"
#include "dex_file.h"
#include "gc_root.h"
+#include "gc/heap-inl.h"
#include "mirror/class.h"
#include "mirror/call_site.h"
#include "mirror/method_type.h"
diff --git a/runtime/native/java_lang_VMClassLoader.cc b/runtime/native/java_lang_VMClassLoader.cc
index 54ab861..a9ba33e 100644
--- a/runtime/native/java_lang_VMClassLoader.cc
+++ b/runtime/native/java_lang_VMClassLoader.cc
@@ -23,6 +23,7 @@
#include "obj_ptr.h"
#include "scoped_fast_native_object_access-inl.h"
#include "ScopedUtfChars.h"
+#include "well_known_classes.h"
#include "zip_archive.h"
namespace art {
diff --git a/runtime/native/java_lang_reflect_Field.cc b/runtime/native/java_lang_reflect_Field.cc
index 9198964..0fb3903 100644
--- a/runtime/native/java_lang_reflect_Field.cc
+++ b/runtime/native/java_lang_reflect_Field.cc
@@ -18,6 +18,7 @@
#include "android-base/stringprintf.h"
+#include "art_field-inl.h"
#include "class_linker.h"
#include "class_linker-inl.h"
#include "common_throws.h"
@@ -29,6 +30,7 @@
#include "reflection-inl.h"
#include "scoped_fast_native_object_access-inl.h"
#include "utils.h"
+#include "well_known_classes.h"
namespace art {
diff --git a/runtime/openjdkjvmti/ti_class.cc b/runtime/openjdkjvmti/ti_class.cc
index c3a1acf..e0af6e8 100644
--- a/runtime/openjdkjvmti/ti_class.cc
+++ b/runtime/openjdkjvmti/ti_class.cc
@@ -69,6 +69,7 @@
#include "ti_phase.h"
#include "ti_redefine.h"
#include "utils.h"
+#include "well_known_classes.h"
namespace openjdkjvmti {
diff --git a/runtime/openjdkjvmti/ti_class_loader.cc b/runtime/openjdkjvmti/ti_class_loader.cc
index 66357eb..5544dde 100644
--- a/runtime/openjdkjvmti/ti_class_loader.cc
+++ b/runtime/openjdkjvmti/ti_class_loader.cc
@@ -35,6 +35,7 @@
#include "android-base/stringprintf.h"
+#include "art_field-inl.h"
#include "art_jvmti.h"
#include "base/array_slice.h"
#include "base/logging.h"
diff --git a/runtime/openjdkjvmti/ti_redefine.cc b/runtime/openjdkjvmti/ti_redefine.cc
index 77f507c..41ed862 100644
--- a/runtime/openjdkjvmti/ti_redefine.cc
+++ b/runtime/openjdkjvmti/ti_redefine.cc
@@ -35,6 +35,7 @@
#include "android-base/stringprintf.h"
+#include "art_field-inl.h"
#include "art_method-inl.h"
#include "art_jvmti.h"
#include "base/array_slice.h"
diff --git a/runtime/openjdkjvmti/ti_search.cc b/runtime/openjdkjvmti/ti_search.cc
index f51a98f..ec139f2 100644
--- a/runtime/openjdkjvmti/ti_search.cc
+++ b/runtime/openjdkjvmti/ti_search.cc
@@ -33,6 +33,7 @@
#include "jni.h"
+#include "art_field-inl.h"
#include "art_jvmti.h"
#include "base/enums.h"
#include "base/macros.h"
@@ -50,6 +51,7 @@
#include "ti_phase.h"
#include "thread-inl.h"
#include "thread_list.h"
+#include "well_known_classes.h"
namespace openjdkjvmti {
diff --git a/runtime/openjdkjvmti/ti_stack.cc b/runtime/openjdkjvmti/ti_stack.cc
index 067c7c1..1ddf04f 100644
--- a/runtime/openjdkjvmti/ti_stack.cc
+++ b/runtime/openjdkjvmti/ti_stack.cc
@@ -36,8 +36,9 @@
#include <unordered_map>
#include <vector>
-#include "art_jvmti.h"
+#include "art_field-inl.h"
#include "art_method-inl.h"
+#include "art_jvmti.h"
#include "base/bit_utils.h"
#include "base/enums.h"
#include "base/mutex.h"
@@ -54,6 +55,7 @@
#include "thread-inl.h"
#include "thread_list.h"
#include "thread_pool.h"
+#include "well_known_classes.h"
namespace openjdkjvmti {
diff --git a/runtime/openjdkjvmti/ti_thread.cc b/runtime/openjdkjvmti/ti_thread.cc
index e5ff090..3dfa633 100644
--- a/runtime/openjdkjvmti/ti_thread.cc
+++ b/runtime/openjdkjvmti/ti_thread.cc
@@ -32,7 +32,7 @@
#include "ti_thread.h"
#include "android-base/strings.h"
-#include "art_field.h"
+#include "art_field-inl.h"
#include "art_jvmti.h"
#include "base/logging.h"
#include "base/mutex.h"
diff --git a/runtime/openjdkjvmti/ti_threadgroup.cc b/runtime/openjdkjvmti/ti_threadgroup.cc
index df14333..dd7be11 100644
--- a/runtime/openjdkjvmti/ti_threadgroup.cc
+++ b/runtime/openjdkjvmti/ti_threadgroup.cc
@@ -31,7 +31,7 @@
#include "ti_threadgroup.h"
-#include "art_field.h"
+#include "art_field-inl.h"
#include "art_jvmti.h"
#include "base/logging.h"
#include "base/macros.h"
diff --git a/runtime/verifier/method_verifier_test.cc b/runtime/verifier/method_verifier_test.cc
index be5c18b..bdb6b68 100644
--- a/runtime/verifier/method_verifier_test.cc
+++ b/runtime/verifier/method_verifier_test.cc
@@ -23,7 +23,7 @@
#include "class_linker-inl.h"
#include "common_runtime_test.h"
-#include "dex_file.h"
+#include "dex_file-inl.h"
#include "scoped_thread_state_change-inl.h"
#include "utils.h"
#include "verifier_log_mode.h"
diff --git a/runtime/verifier/verifier_deps.cc b/runtime/verifier/verifier_deps.cc
index 51ec51f..0497a6d 100644
--- a/runtime/verifier/verifier_deps.cc
+++ b/runtime/verifier/verifier_deps.cc
@@ -18,6 +18,7 @@
#include <cstring>
+#include "art_field-inl.h"
#include "art_method-inl.h"
#include "base/stl_util.h"
#include "compiler_callbacks.h"