summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2020-05-12 11:50:34 +0100
committer Vladimir Marko <vmarko@google.com> 2020-05-13 08:00:22 +0000
commit5868adaefe72cc8bcdcd8325c40f712375a506d1 (patch)
treea1d4328902c4e860fe69c4e4bb34052de2530df3
parent5a62af5dc9e9bafeffcac7820e1a5b7586e58477 (diff)
Move implementations from class_root.h to -inl.h .
Make it possible to include the definition of enum ClassRoot without pulling in a lot of other headers. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: aosp_taimen-userdebug boots. Change-Id: Ic90fdd70bfe0c5428a5c9a0d7901ea7e15b03488
-rw-r--r--compiler/optimizing/inliner.cc2
-rw-r--r--compiler/optimizing/instruction_simplifier.cc2
-rw-r--r--compiler/optimizing/intrinsics.cc2
-rw-r--r--compiler/optimizing/nodes.cc2
-rw-r--r--compiler/optimizing/optimizing_compiler.cc1
-rw-r--r--compiler/optimizing/reference_type_propagation.cc2
-rw-r--r--dex2oat/linker/image_writer.cc2
-rw-r--r--oatdump/oatdump.cc2
-rw-r--r--openjdkjvmti/ti_class_definition.cc2
-rw-r--r--openjdkjvmti/ti_heap.cc1
-rw-r--r--openjdkjvmti/ti_redefine.cc2
-rw-r--r--runtime/arch/stub_test.cc2
-rw-r--r--runtime/art_method.cc2
-rw-r--r--runtime/class_linker.cc2
-rw-r--r--runtime/class_linker_test.cc2
-rw-r--r--runtime/class_loader_context.cc2
-rw-r--r--runtime/class_loader_context_test.cc2
-rw-r--r--runtime/class_root-inl.h99
-rw-r--r--runtime/class_root.cc4
-rw-r--r--runtime/class_root.h81
-rw-r--r--runtime/dex/dex_file_annotations.cc2
-rw-r--r--runtime/entrypoints/quick/quick_trampoline_entrypoints.cc2
-rw-r--r--runtime/gc/accounting/mod_union_table_test.cc2
-rw-r--r--runtime/gc/collector/concurrent_copying.cc2
-rw-r--r--runtime/gc/heap.cc2
-rw-r--r--runtime/gc/heap_verification_test.cc2
-rw-r--r--runtime/gc/reference_processor.cc2
-rw-r--r--runtime/gc/space/image_space.cc2
-rw-r--r--runtime/handle.cc2
-rw-r--r--runtime/hidden_api.cc1
-rw-r--r--runtime/hprof/hprof.cc2
-rw-r--r--runtime/interpreter/interpreter_common.cc2
-rw-r--r--runtime/interpreter/interpreter_common.h2
-rw-r--r--runtime/interpreter/unstarted_runtime_test.cc2
-rw-r--r--runtime/jit/jit.cc2
-rw-r--r--runtime/jni/check_jni.cc2
-rw-r--r--runtime/jni/jni_id_manager.cc1
-rw-r--r--runtime/jni/jni_internal.cc2
-rw-r--r--runtime/method_handles.cc2
-rw-r--r--runtime/method_handles_test.cc2
-rw-r--r--runtime/mirror/array.cc2
-rw-r--r--runtime/mirror/class.cc2
-rw-r--r--runtime/mirror/class_ext-inl.h1
-rw-r--r--runtime/mirror/class_ext.cc2
-rw-r--r--runtime/mirror/emulated_stack_frame.cc2
-rw-r--r--runtime/mirror/field-inl.h2
-rw-r--r--runtime/mirror/method.cc2
-rw-r--r--runtime/mirror/method_handle_impl.cc2
-rw-r--r--runtime/mirror/method_handles_lookup.cc2
-rw-r--r--runtime/mirror/method_type.cc2
-rw-r--r--runtime/mirror/method_type_test.cc2
-rw-r--r--runtime/mirror/object_test.cc2
-rw-r--r--runtime/mirror/stack_trace_element.cc2
-rw-r--r--runtime/mirror/string-alloc-inl.h2
-rw-r--r--runtime/mirror/throwable.cc2
-rw-r--r--runtime/mirror/var_handle.cc2
-rw-r--r--runtime/mirror/var_handle_test.cc2
-rw-r--r--runtime/native/java_lang_Class.cc2
-rw-r--r--runtime/native/java_lang_reflect_Constructor.cc2
-rw-r--r--runtime/native/java_lang_reflect_Executable.cc2
-rw-r--r--runtime/native/java_lang_reflect_Method.cc2
-rw-r--r--runtime/proxy_test.h2
-rw-r--r--runtime/runtime.cc2
-rw-r--r--runtime/thread.cc2
-rw-r--r--runtime/verifier/method_verifier.cc2
-rw-r--r--runtime/verifier/reg_type_cache-inl.h2
-rw-r--r--test/1985-structural-redefine-stack-scope/stack_scope.cc2
67 files changed, 181 insertions, 126 deletions
diff --git a/compiler/optimizing/inliner.cc b/compiler/optimizing/inliner.cc
index 126bf25f06..5472839027 100644
--- a/compiler/optimizing/inliner.cc
+++ b/compiler/optimizing/inliner.cc
@@ -21,7 +21,7 @@
#include "base/logging.h"
#include "builder.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "constant_folding.h"
#include "data_type-inl.h"
#include "dead_code_elimination.h"
diff --git a/compiler/optimizing/instruction_simplifier.cc b/compiler/optimizing/instruction_simplifier.cc
index 8e0b4145e3..5ac77a5484 100644
--- a/compiler/optimizing/instruction_simplifier.cc
+++ b/compiler/optimizing/instruction_simplifier.cc
@@ -18,7 +18,7 @@
#include "art_method-inl.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "data_type-inl.h"
#include "escape.h"
#include "intrinsics.h"
diff --git a/compiler/optimizing/intrinsics.cc b/compiler/optimizing/intrinsics.cc
index d9401050df..1563a7e04b 100644
--- a/compiler/optimizing/intrinsics.cc
+++ b/compiler/optimizing/intrinsics.cc
@@ -20,7 +20,7 @@
#include "art_method-inl.h"
#include "base/utils.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/invoke_type.h"
#include "driver/compiler_options.h"
#include "gc/space/image_space.h"
diff --git a/compiler/optimizing/nodes.cc b/compiler/optimizing/nodes.cc
index 810871c18f..a5e0991578 100644
--- a/compiler/optimizing/nodes.cc
+++ b/compiler/optimizing/nodes.cc
@@ -23,7 +23,7 @@
#include "base/logging.h"
#include "base/stl_util.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "code_generator.h"
#include "common_dominator.h"
#include "intrinsics.h"
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index 3945b17c0d..bf9afa27eb 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -32,7 +32,6 @@
#include "base/scoped_arena_allocator.h"
#include "base/timing_logger.h"
#include "builder.h"
-#include "class_root.h"
#include "code_generator.h"
#include "compiled_method.h"
#include "compiler.h"
diff --git a/compiler/optimizing/reference_type_propagation.cc b/compiler/optimizing/reference_type_propagation.cc
index 4929e0a3a1..fb7222ccf6 100644
--- a/compiler/optimizing/reference_type_propagation.cc
+++ b/compiler/optimizing/reference_type_propagation.cc
@@ -22,7 +22,7 @@
#include "base/scoped_arena_containers.h"
#include "base/enums.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "handle_scope-inl.h"
#include "mirror/class-inl.h"
#include "mirror/dex_cache.h"
diff --git a/dex2oat/linker/image_writer.cc b/dex2oat/linker/image_writer.cc
index b7776ffb4a..d56fea997e 100644
--- a/dex2oat/linker/image_writer.cc
+++ b/dex2oat/linker/image_writer.cc
@@ -35,7 +35,7 @@
#include "base/stl_util.h"
#include "base/unix_file/fd_file.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "compiled_method.h"
#include "dex/dex_file-inl.h"
#include "dex/dex_file_types.h"
diff --git a/oatdump/oatdump.cc b/oatdump/oatdump.cc
index 3acea4216d..1f843b3525 100644
--- a/oatdump/oatdump.cc
+++ b/oatdump/oatdump.cc
@@ -44,7 +44,7 @@
#include "base/unix_file/fd_file.h"
#include "class_linker-inl.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "compiled_method.h"
#include "debug/debug_info.h"
#include "debug/elf_debug_writer.h"
diff --git a/openjdkjvmti/ti_class_definition.cc b/openjdkjvmti/ti_class_definition.cc
index ec26715519..a480ac0cc6 100644
--- a/openjdkjvmti/ti_class_definition.cc
+++ b/openjdkjvmti/ti_class_definition.cc
@@ -34,7 +34,7 @@
#include "base/array_slice.h"
#include "base/logging.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/dex_file.h"
#include "fixed_up_dex_file.h"
#include "handle.h"
diff --git a/openjdkjvmti/ti_heap.cc b/openjdkjvmti/ti_heap.cc
index 974a710f91..905ed9535b 100644
--- a/openjdkjvmti/ti_heap.cc
+++ b/openjdkjvmti/ti_heap.cc
@@ -29,7 +29,6 @@
#include "base/mutex.h"
#include "base/utils.h"
#include "class_linker.h"
-#include "class_root.h"
#include "deopt_manager.h"
#include "dex/primitive.h"
#include "events-inl.h"
diff --git a/openjdkjvmti/ti_redefine.cc b/openjdkjvmti/ti_redefine.cc
index a6b597b840..05d198b646 100644
--- a/openjdkjvmti/ti_redefine.cc
+++ b/openjdkjvmti/ti_redefine.cc
@@ -61,7 +61,7 @@
#include "base/utils.h"
#include "class_linker-inl.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "class_status.h"
#include "debugger.h"
#include "dex/art_dex_file_loader.h"
diff --git a/runtime/arch/stub_test.cc b/runtime/arch/stub_test.cc
index 2b47cefdd3..772681dbcb 100644
--- a/runtime/arch/stub_test.cc
+++ b/runtime/arch/stub_test.cc
@@ -21,7 +21,7 @@
#include "base/callee_save_type.h"
#include "base/enums.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_runtime_test.h"
#include "entrypoints/quick/quick_entrypoints_enum.h"
#include "imt_conflict_table.h"
diff --git a/runtime/art_method.cc b/runtime/art_method.cc
index d0b6fde98e..a2a45ce00a 100644
--- a/runtime/art_method.cc
+++ b/runtime/art_method.cc
@@ -26,7 +26,7 @@
#include "base/enums.h"
#include "base/stl_util.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "debugger.h"
#include "dex/class_accessor-inl.h"
#include "dex/descriptors_names.h"
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index 6573bc0707..b6f417d70d 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -57,7 +57,7 @@
#include "cha.h"
#include "class_linker-inl.h"
#include "class_loader_utils.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "class_table-inl.h"
#include "compiler_callbacks.h"
#include "debug_print.h"
diff --git a/runtime/class_linker_test.cc b/runtime/class_linker_test.cc
index 931f6dfa1b..a7561deac8 100644
--- a/runtime/class_linker_test.cc
+++ b/runtime/class_linker_test.cc
@@ -26,7 +26,7 @@
#include "art_method-inl.h"
#include "base/enums.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_runtime_test.h"
#include "dex/dex_file_types.h"
#include "dex/signature-inl.h"
diff --git a/runtime/class_loader_context.cc b/runtime/class_loader_context.cc
index d2119db3ee..fe78ba00c8 100644
--- a/runtime/class_loader_context.cc
+++ b/runtime/class_loader_context.cc
@@ -26,7 +26,7 @@
#include "base/stl_util.h"
#include "class_linker.h"
#include "class_loader_utils.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/art_dex_file_loader.h"
#include "dex/dex_file.h"
#include "dex/dex_file_loader.h"
diff --git a/runtime/class_loader_context_test.cc b/runtime/class_loader_context_test.cc
index e2e6075d22..ff466c0d96 100644
--- a/runtime/class_loader_context_test.cc
+++ b/runtime/class_loader_context_test.cc
@@ -23,7 +23,7 @@
#include "base/dchecked_vector.h"
#include "base/stl_util.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_runtime_test.h"
#include "dex/dex_file.h"
#include "handle_scope-inl.h"
diff --git a/runtime/class_root-inl.h b/runtime/class_root-inl.h
new file mode 100644
index 0000000000..d88b8e1710
--- /dev/null
+++ b/runtime/class_root-inl.h
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ART_RUNTIME_CLASS_ROOT_INL_H_
+#define ART_RUNTIME_CLASS_ROOT_INL_H_
+
+#include "class_root.h"
+
+#include "class_linker-inl.h"
+#include "mirror/class.h"
+#include "mirror/object_array-inl.h"
+#include "obj_ptr-inl.h"
+#include "runtime.h"
+
+namespace art {
+
+template <ReadBarrierOption kReadBarrierOption>
+inline ObjPtr<mirror::Class> GetClassRoot(ClassRoot class_root,
+ ObjPtr<mirror::ObjectArray<mirror::Class>> class_roots) {
+ DCHECK(class_roots != nullptr);
+ if (kReadBarrierOption == kWithReadBarrier) {
+ // With read barrier all references must point to the to-space.
+ // Without read barrier, this check could fail.
+ DCHECK_EQ(class_roots, Runtime::Current()->GetClassLinker()->GetClassRoots());
+ }
+ DCHECK_LT(static_cast<uint32_t>(class_root), static_cast<uint32_t>(ClassRoot::kMax));
+ int32_t index = static_cast<int32_t>(class_root);
+ ObjPtr<mirror::Class> klass =
+ class_roots->GetWithoutChecks<kDefaultVerifyFlags, kReadBarrierOption>(index);
+ DCHECK(klass != nullptr);
+ return klass;
+}
+
+template <ReadBarrierOption kReadBarrierOption>
+inline ObjPtr<mirror::Class> GetClassRoot(ClassRoot class_root, ClassLinker* linker)
+ REQUIRES_SHARED(Locks::mutator_lock_) {
+ return GetClassRoot<kReadBarrierOption>(class_root, linker->GetClassRoots<kReadBarrierOption>());
+}
+
+template <ReadBarrierOption kReadBarrierOption>
+inline ObjPtr<mirror::Class> GetClassRoot(ClassRoot class_root)
+ REQUIRES_SHARED(Locks::mutator_lock_) {
+ return GetClassRoot<kReadBarrierOption>(class_root, Runtime::Current()->GetClassLinker());
+}
+
+namespace detail {
+
+class ClassNotFoundExceptionTag;
+template <class Tag> struct NoMirrorType;
+
+template <class MirrorType>
+struct ClassRootSelector; // No definition for unspecialized ClassRoot selector.
+
+#define SPECIALIZE_CLASS_ROOT_SELECTOR(name, descriptor, mirror_type) \
+ template <> \
+ struct ClassRootSelector<mirror_type> { \
+ static constexpr ClassRoot value = ClassRoot::name; \
+ };
+
+CLASS_ROOT_LIST(SPECIALIZE_CLASS_ROOT_SELECTOR)
+
+#undef SPECIALIZE_CLASS_ROOT_SELECTOR
+
+} // namespace detail
+
+template <class MirrorType, ReadBarrierOption kReadBarrierOption>
+inline ObjPtr<mirror::Class> GetClassRoot(ObjPtr<mirror::ObjectArray<mirror::Class>> class_roots)
+ REQUIRES_SHARED(Locks::mutator_lock_) {
+ return GetClassRoot<kReadBarrierOption>(detail::ClassRootSelector<MirrorType>::value,
+ class_roots);
+}
+
+template <class MirrorType, ReadBarrierOption kReadBarrierOption>
+inline ObjPtr<mirror::Class> GetClassRoot(ClassLinker* linker)
+ REQUIRES_SHARED(Locks::mutator_lock_) {
+ return GetClassRoot<kReadBarrierOption>(detail::ClassRootSelector<MirrorType>::value, linker);
+}
+
+template <class MirrorType, ReadBarrierOption kReadBarrierOption>
+inline ObjPtr<mirror::Class> GetClassRoot() REQUIRES_SHARED(Locks::mutator_lock_) {
+ return GetClassRoot<kReadBarrierOption>(detail::ClassRootSelector<MirrorType>::value);
+}
+
+} // namespace art
+
+#endif // ART_RUNTIME_CLASS_ROOT_INL_H_
diff --git a/runtime/class_root.cc b/runtime/class_root.cc
index 08820b0c61..6a6fd26ecd 100644
--- a/runtime/class_root.cc
+++ b/runtime/class_root.cc
@@ -16,10 +16,12 @@
#include "class_root.h"
+#include "base/logging.h"
+
namespace art {
const char* GetClassRootDescriptor(ClassRoot class_root) {
- static const char* class_roots_descriptors[] = {
+ static const char* const class_roots_descriptors[] = {
#define CLASS_ROOT_DESCRIPTOR(name, descriptor, mirror_type) descriptor,
CLASS_ROOT_LIST(CLASS_ROOT_DESCRIPTOR)
#undef CLASS_ROOT_DESCRIPTOR
diff --git a/runtime/class_root.h b/runtime/class_root.h
index 835ec900be..85e074cc47 100644
--- a/runtime/class_root.h
+++ b/runtime/class_root.h
@@ -17,20 +17,22 @@
#ifndef ART_RUNTIME_CLASS_ROOT_H_
#define ART_RUNTIME_CLASS_ROOT_H_
-#include "class_linker-inl.h"
-#include "gc_root-inl.h"
-#include "mirror/class.h"
-#include "mirror/object_array-inl.h"
-#include "obj_ptr-inl.h"
-#include "runtime.h"
+#include <stdint.h>
+
+#include "base/locks.h"
+#include "read_barrier_option.h"
namespace art {
+class ClassLinker;
+template<class MirrorType> class ObjPtr;
+
namespace mirror {
class ArrayElementVarHandle;
class ByteArrayViewVarHandle;
class ByteBufferViewVarHandle;
class CallSite;
+class Class;
class ClassExt;
class ClassLoader;
class Constructor;
@@ -43,6 +45,7 @@ class MethodHandleImpl;
class MethodHandlesLookup;
class MethodType;
class Object;
+template<class T> class ObjectArray;
class Proxy;
template<typename T> class PrimitiveArray;
class Reference;
@@ -121,72 +124,26 @@ enum class ClassRoot : uint32_t {
const char* GetClassRootDescriptor(ClassRoot class_root);
template <ReadBarrierOption kReadBarrierOption = kWithReadBarrier>
-inline ObjPtr<mirror::Class> GetClassRoot(
- ClassRoot class_root,
- ObjPtr<mirror::ObjectArray<mirror::Class>> class_roots) REQUIRES_SHARED(Locks::mutator_lock_) {
- DCHECK(class_roots != nullptr);
- if (kReadBarrierOption == kWithReadBarrier) {
- // With read barrier all references must point to the to-space.
- // Without read barrier, this check could fail.
- DCHECK_EQ(class_roots, Runtime::Current()->GetClassLinker()->GetClassRoots());
- }
- DCHECK_LT(static_cast<uint32_t>(class_root), static_cast<uint32_t>(ClassRoot::kMax));
- int32_t index = static_cast<int32_t>(class_root);
- ObjPtr<mirror::Class> klass =
- class_roots->GetWithoutChecks<kDefaultVerifyFlags, kReadBarrierOption>(index);
- DCHECK(klass != nullptr);
- return klass;
-}
+ObjPtr<mirror::Class> GetClassRoot(ClassRoot class_root,
+ ObjPtr<mirror::ObjectArray<mirror::Class>> class_roots)
+ REQUIRES_SHARED(Locks::mutator_lock_);
template <ReadBarrierOption kReadBarrierOption = kWithReadBarrier>
-inline ObjPtr<mirror::Class> GetClassRoot(ClassRoot class_root, ClassLinker* linker)
- REQUIRES_SHARED(Locks::mutator_lock_) {
- return GetClassRoot<kReadBarrierOption>(class_root, linker->GetClassRoots<kReadBarrierOption>());
-}
+ObjPtr<mirror::Class> GetClassRoot(ClassRoot class_root, ClassLinker* linker)
+ REQUIRES_SHARED(Locks::mutator_lock_);
template <ReadBarrierOption kReadBarrierOption = kWithReadBarrier>
-inline ObjPtr<mirror::Class> GetClassRoot(ClassRoot class_root)
- REQUIRES_SHARED(Locks::mutator_lock_) {
- return GetClassRoot<kReadBarrierOption>(class_root, Runtime::Current()->GetClassLinker());
-}
-
-namespace detail {
-
-class ClassNotFoundExceptionTag;
-template <class Tag> struct NoMirrorType;
-
-template <class MirrorType>
-struct ClassRootSelector; // No definition for unspecialized ClassRoot selector.
-
-#define SPECIALIZE_CLASS_ROOT_SELECTOR(name, descriptor, mirror_type) \
- template <> \
- struct ClassRootSelector<mirror_type> { \
- static constexpr ClassRoot value = ClassRoot::name; \
- };
-
-CLASS_ROOT_LIST(SPECIALIZE_CLASS_ROOT_SELECTOR)
-
-#undef SPECIALIZE_CLASS_ROOT_SELECTOR
-
-} // namespace detail
+ObjPtr<mirror::Class> GetClassRoot(ClassRoot class_root) REQUIRES_SHARED(Locks::mutator_lock_);
template <class MirrorType, ReadBarrierOption kReadBarrierOption = kWithReadBarrier>
-inline ObjPtr<mirror::Class> GetClassRoot(ObjPtr<mirror::ObjectArray<mirror::Class>> class_roots)
- REQUIRES_SHARED(Locks::mutator_lock_) {
- return GetClassRoot<kReadBarrierOption>(detail::ClassRootSelector<MirrorType>::value,
- class_roots);
-}
+ObjPtr<mirror::Class> GetClassRoot(ObjPtr<mirror::ObjectArray<mirror::Class>> class_roots)
+ REQUIRES_SHARED(Locks::mutator_lock_);
template <class MirrorType, ReadBarrierOption kReadBarrierOption = kWithReadBarrier>
-inline ObjPtr<mirror::Class> GetClassRoot(ClassLinker* linker)
- REQUIRES_SHARED(Locks::mutator_lock_) {
- return GetClassRoot<kReadBarrierOption>(detail::ClassRootSelector<MirrorType>::value, linker);
-}
+ObjPtr<mirror::Class> GetClassRoot(ClassLinker* linker) REQUIRES_SHARED(Locks::mutator_lock_);
template <class MirrorType, ReadBarrierOption kReadBarrierOption = kWithReadBarrier>
-inline ObjPtr<mirror::Class> GetClassRoot() REQUIRES_SHARED(Locks::mutator_lock_) {
- return GetClassRoot<kReadBarrierOption>(detail::ClassRootSelector<MirrorType>::value);
-}
+ObjPtr<mirror::Class> GetClassRoot() REQUIRES_SHARED(Locks::mutator_lock_);
} // namespace art
diff --git a/runtime/dex/dex_file_annotations.cc b/runtime/dex/dex_file_annotations.cc
index 99c56a1e3a..366d41c65b 100644
--- a/runtime/dex/dex_file_annotations.cc
+++ b/runtime/dex/dex_file_annotations.cc
@@ -24,7 +24,7 @@
#include "art_method-inl.h"
#include "base/sdk_version.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/dex_file-inl.h"
#include "dex/dex_instruction-inl.h"
#include "jni/jni_internal.h"
diff --git a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
index 55be920ace..5ac915219f 100644
--- a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
+++ b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
@@ -19,7 +19,7 @@
#include "base/enums.h"
#include "callee_save_frame.h"
#include "common_throws.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "debug_print.h"
#include "debugger.h"
#include "dex/dex_file-inl.h"
diff --git a/runtime/gc/accounting/mod_union_table_test.cc b/runtime/gc/accounting/mod_union_table_test.cc
index e66a174587..2fc9ee800d 100644
--- a/runtime/gc/accounting/mod_union_table_test.cc
+++ b/runtime/gc/accounting/mod_union_table_test.cc
@@ -17,7 +17,7 @@
#include "mod_union_table-inl.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_runtime_test.h"
#include "gc/space/space-inl.h"
#include "mirror/array-alloc-inl.h"
diff --git a/runtime/gc/collector/concurrent_copying.cc b/runtime/gc/collector/concurrent_copying.cc
index ff73437921..7a1a505393 100644
--- a/runtime/gc/collector/concurrent_copying.cc
+++ b/runtime/gc/collector/concurrent_copying.cc
@@ -24,7 +24,7 @@
#include "base/quasi_atomic.h"
#include "base/stl_util.h"
#include "base/systrace.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "debugger.h"
#include "gc/accounting/atomic_stack.h"
#include "gc/accounting/heap_bitmap-inl.h"
diff --git a/runtime/gc/heap.cc b/runtime/gc/heap.cc
index f18fb53d24..645e28fe56 100644
--- a/runtime/gc/heap.cc
+++ b/runtime/gc/heap.cc
@@ -42,7 +42,7 @@
#include "base/systrace.h"
#include "base/time_utils.h"
#include "base/utils.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_throws.h"
#include "debugger.h"
#include "dex/dex_file-inl.h"
diff --git a/runtime/gc/heap_verification_test.cc b/runtime/gc/heap_verification_test.cc
index 7835c2969a..ca6a30b11d 100644
--- a/runtime/gc/heap_verification_test.cc
+++ b/runtime/gc/heap_verification_test.cc
@@ -18,7 +18,7 @@
#include "base/memory_tool.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "handle_scope-inl.h"
#include "mirror/object-inl.h"
#include "mirror/object_array-alloc-inl.h"
diff --git a/runtime/gc/reference_processor.cc b/runtime/gc/reference_processor.cc
index 498013e5b9..2e74edf5bb 100644
--- a/runtime/gc/reference_processor.cc
+++ b/runtime/gc/reference_processor.cc
@@ -20,7 +20,7 @@
#include "base/mutex.h"
#include "base/time_utils.h"
#include "base/utils.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "collector/garbage_collector.h"
#include "jni/java_vm_ext.h"
#include "mirror/class-inl.h"
diff --git a/runtime/gc/space/image_space.cc b/runtime/gc/space/image_space.cc
index 9958956603..5484f49e96 100644
--- a/runtime/gc/space/image_space.cc
+++ b/runtime/gc/space/image_space.cc
@@ -43,7 +43,7 @@
#include "base/systrace.h"
#include "base/time_utils.h"
#include "base/utils.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/art_dex_file_loader.h"
#include "dex/dex_file_loader.h"
#include "exec_utils.h"
diff --git a/runtime/handle.cc b/runtime/handle.cc
index 0028deeb56..af77e2362b 100644
--- a/runtime/handle.cc
+++ b/runtime/handle.cc
@@ -38,7 +38,7 @@
#include "mirror/throwable.h"
#include "mirror/var_handle.h"
-#include "class_root.h"
+#include "class_root-inl.h"
namespace art {
diff --git a/runtime/hidden_api.cc b/runtime/hidden_api.cc
index 05b2311906..636b8c8886 100644
--- a/runtime/hidden_api.cc
+++ b/runtime/hidden_api.cc
@@ -22,7 +22,6 @@
#include "art_method-inl.h"
#include "base/dumpable.h"
#include "base/file_utils.h"
-#include "class_root.h"
#include "dex/class_accessor-inl.h"
#include "dex/dex_file_loader.h"
#include "mirror/class_ext.h"
diff --git a/runtime/hprof/hprof.cc b/runtime/hprof/hprof.cc
index 516c435d32..27560c8040 100644
--- a/runtime/hprof/hprof.cc
+++ b/runtime/hprof/hprof.cc
@@ -50,7 +50,7 @@
#include "base/time_utils.h"
#include "base/unix_file/fd_file.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_throws.h"
#include "debugger.h"
#include "dex/dex_file-inl.h"
diff --git a/runtime/interpreter/interpreter_common.cc b/runtime/interpreter/interpreter_common.cc
index 4d964f1f3b..726de6ec11 100644
--- a/runtime/interpreter/interpreter_common.cc
+++ b/runtime/interpreter/interpreter_common.cc
@@ -20,7 +20,7 @@
#include "base/casts.h"
#include "base/enums.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "debugger.h"
#include "dex/dex_file_types.h"
#include "entrypoints/runtime_asm_entrypoints.h"
diff --git a/runtime/interpreter/interpreter_common.h b/runtime/interpreter/interpreter_common.h
index c6d8569128..6c272f313f 100644
--- a/runtime/interpreter/interpreter_common.h
+++ b/runtime/interpreter/interpreter_common.h
@@ -39,7 +39,7 @@
#include "base/logging.h"
#include "base/macros.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_dex_operations.h"
#include "common_throws.h"
#include "dex/dex_file-inl.h"
diff --git a/runtime/interpreter/unstarted_runtime_test.cc b/runtime/interpreter/unstarted_runtime_test.cc
index 8020962c52..792444a956 100644
--- a/runtime/interpreter/unstarted_runtime_test.cc
+++ b/runtime/interpreter/unstarted_runtime_test.cc
@@ -23,7 +23,7 @@
#include "base/enums.h"
#include "base/memory_tool.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_runtime_test.h"
#include "dex/descriptors_names.h"
#include "dex/dex_instruction.h"
diff --git a/runtime/jit/jit.cc b/runtime/jit/jit.cc
index 2e49067908..2ef1cb4127 100644
--- a/runtime/jit/jit.cc
+++ b/runtime/jit/jit.cc
@@ -27,7 +27,7 @@
#include "base/runtime_debug.h"
#include "base/scoped_flock.h"
#include "base/utils.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "debugger.h"
#include "dex/type_lookup_table.h"
#include "gc/space/image_space.h"
diff --git a/runtime/jni/check_jni.cc b/runtime/jni/check_jni.cc
index 4a8453a721..32060117e7 100644
--- a/runtime/jni/check_jni.cc
+++ b/runtime/jni/check_jni.cc
@@ -31,7 +31,7 @@
#include "base/time_utils.h"
#include "class_linker-inl.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/descriptors_names.h"
#include "dex/dex_file-inl.h"
#include "gc/space/space.h"
diff --git a/runtime/jni/jni_id_manager.cc b/runtime/jni/jni_id_manager.cc
index 8070505bed..402259bf6b 100644
--- a/runtime/jni/jni_id_manager.cc
+++ b/runtime/jni/jni_id_manager.cc
@@ -27,6 +27,7 @@
#include "base/globals.h"
#include "base/locks.h"
#include "base/mutex.h"
+#include "class_root-inl.h"
#include "gc/allocation_listener.h"
#include "gc/heap.h"
#include "jni/jni_internal.h"
diff --git a/runtime/jni/jni_internal.cc b/runtime/jni/jni_internal.cc
index 9bbde2334a..c3694dc85e 100644
--- a/runtime/jni/jni_internal.cc
+++ b/runtime/jni/jni_internal.cc
@@ -31,7 +31,7 @@
#include "base/safe_map.h"
#include "base/stl_util.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/dex_file-inl.h"
#include "dex/utf.h"
#include "fault_handler.h"
diff --git a/runtime/method_handles.cc b/runtime/method_handles.cc
index 2dc9f672dd..78e75616f1 100644
--- a/runtime/method_handles.cc
+++ b/runtime/method_handles.cc
@@ -18,7 +18,7 @@
#include "android-base/stringprintf.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_dex_operations.h"
#include "common_throws.h"
#include "interpreter/shadow_frame-inl.h"
diff --git a/runtime/method_handles_test.cc b/runtime/method_handles_test.cc
index 688febc4b5..eb3f2ad41c 100644
--- a/runtime/method_handles_test.cc
+++ b/runtime/method_handles_test.cc
@@ -17,7 +17,7 @@
#include "method_handles.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_runtime_test.h"
#include "handle_scope-inl.h"
#include "jvalue-inl.h"
diff --git a/runtime/mirror/array.cc b/runtime/mirror/array.cc
index e011e1cef3..bd9f9cac18 100644
--- a/runtime/mirror/array.cc
+++ b/runtime/mirror/array.cc
@@ -21,7 +21,7 @@
#include "class-inl.h"
#include "class.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_throws.h"
#include "dex/dex_file-inl.h"
#include "gc/accounting/card_table-inl.h"
diff --git a/runtime/mirror/class.cc b/runtime/mirror/class.cc
index b1c36abf8d..33ce785a65 100644
--- a/runtime/mirror/class.cc
+++ b/runtime/mirror/class.cc
@@ -32,7 +32,7 @@
#include "class_ext-inl.h"
#include "class_linker-inl.h"
#include "class_loader.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/descriptors_names.h"
#include "dex/dex_file-inl.h"
#include "dex/dex_file_annotations.h"
diff --git a/runtime/mirror/class_ext-inl.h b/runtime/mirror/class_ext-inl.h
index 99f7f49fc5..b8493c1707 100644
--- a/runtime/mirror/class_ext-inl.h
+++ b/runtime/mirror/class_ext-inl.h
@@ -23,7 +23,6 @@
#include "art_method-inl.h"
#include "base/enums.h"
#include "base/globals.h"
-#include "class_root.h"
#include "handle_scope.h"
#include "jni/jni_internal.h"
#include "jni_id_type.h"
diff --git a/runtime/mirror/class_ext.cc b/runtime/mirror/class_ext.cc
index ba1ae5f260..7543ab6d71 100644
--- a/runtime/mirror/class_ext.cc
+++ b/runtime/mirror/class_ext.cc
@@ -22,7 +22,7 @@
#include "base/utils.h"
#include "class-alloc-inl.h"
#include "class-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/dex_file-inl.h"
#include "gc/accounting/card_table-inl.h"
#include "mirror/object.h"
diff --git a/runtime/mirror/emulated_stack_frame.cc b/runtime/mirror/emulated_stack_frame.cc
index cfdab8fee7..19e40dc148 100644
--- a/runtime/mirror/emulated_stack_frame.cc
+++ b/runtime/mirror/emulated_stack_frame.cc
@@ -19,7 +19,7 @@
#include "array-alloc-inl.h"
#include "array-inl.h"
#include "class-alloc-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "handle.h"
#include "jvalue-inl.h"
#include "method_handles-inl.h"
diff --git a/runtime/mirror/field-inl.h b/runtime/mirror/field-inl.h
index 4f544c97d9..9fe5eac630 100644
--- a/runtime/mirror/field-inl.h
+++ b/runtime/mirror/field-inl.h
@@ -21,7 +21,7 @@
#include "art_field-inl.h"
#include "class-alloc-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex_cache-inl.h"
#include "object-inl.h"
diff --git a/runtime/mirror/method.cc b/runtime/mirror/method.cc
index c8290268c4..f83f03c296 100644
--- a/runtime/mirror/method.cc
+++ b/runtime/mirror/method.cc
@@ -17,7 +17,7 @@
#include "method.h"
#include "art_method.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "mirror/class-alloc-inl.h"
#include "mirror/object-inl.h"
#include "obj_ptr-inl.h"
diff --git a/runtime/mirror/method_handle_impl.cc b/runtime/mirror/method_handle_impl.cc
index dd25fc9338..4f1a18b7be 100644
--- a/runtime/mirror/method_handle_impl.cc
+++ b/runtime/mirror/method_handle_impl.cc
@@ -17,7 +17,7 @@
#include "method_handle_impl-inl.h"
#include "class-alloc-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
namespace art {
namespace mirror {
diff --git a/runtime/mirror/method_handles_lookup.cc b/runtime/mirror/method_handles_lookup.cc
index e0e7b06134..e9c41f9d9a 100644
--- a/runtime/mirror/method_handles_lookup.cc
+++ b/runtime/mirror/method_handles_lookup.cc
@@ -17,7 +17,7 @@
#include "method_handles_lookup.h"
#include "class-alloc-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/modifiers.h"
#include "handle_scope.h"
#include "jni/jni_internal.h"
diff --git a/runtime/mirror/method_type.cc b/runtime/mirror/method_type.cc
index 1d88d85e59..821de7b9a0 100644
--- a/runtime/mirror/method_type.cc
+++ b/runtime/mirror/method_type.cc
@@ -17,7 +17,7 @@
#include "method_type-inl.h"
#include "class-alloc-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "method_handles.h"
#include "obj_ptr-inl.h"
#include "object_array-alloc-inl.h"
diff --git a/runtime/mirror/method_type_test.cc b/runtime/mirror/method_type_test.cc
index 4e9ba51655..742960bea1 100644
--- a/runtime/mirror/method_type_test.cc
+++ b/runtime/mirror/method_type_test.cc
@@ -22,7 +22,7 @@
#include "class-inl.h"
#include "class_linker-inl.h"
#include "class_loader.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_runtime_test.h"
#include "handle_scope-inl.h"
#include "object_array-alloc-inl.h"
diff --git a/runtime/mirror/object_test.cc b/runtime/mirror/object_test.cc
index 8ef7025a0b..80ed832e95 100644
--- a/runtime/mirror/object_test.cc
+++ b/runtime/mirror/object_test.cc
@@ -30,7 +30,7 @@
#include "class-inl.h"
#include "class_linker-inl.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_runtime_test.h"
#include "dex/dex_file.h"
#include "entrypoints/entrypoint_utils-inl.h"
diff --git a/runtime/mirror/stack_trace_element.cc b/runtime/mirror/stack_trace_element.cc
index 2a272d3056..7fc6c0956a 100644
--- a/runtime/mirror/stack_trace_element.cc
+++ b/runtime/mirror/stack_trace_element.cc
@@ -18,7 +18,7 @@
#include "class-alloc-inl.h"
#include "class.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "gc/accounting/card_table-inl.h"
#include "handle_scope-inl.h"
#include "object-inl.h"
diff --git a/runtime/mirror/string-alloc-inl.h b/runtime/mirror/string-alloc-inl.h
index e2b08054ca..5f3abd75e3 100644
--- a/runtime/mirror/string-alloc-inl.h
+++ b/runtime/mirror/string-alloc-inl.h
@@ -23,7 +23,7 @@
#include "array.h"
#include "base/bit_utils.h"
#include "class.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "gc/allocator_type.h"
#include "gc/heap-inl.h"
#include "obj_ptr.h"
diff --git a/runtime/mirror/throwable.cc b/runtime/mirror/throwable.cc
index faa605c2e0..a03277cc88 100644
--- a/runtime/mirror/throwable.cc
+++ b/runtime/mirror/throwable.cc
@@ -22,7 +22,7 @@
#include "base/enums.h"
#include "base/utils.h"
#include "class-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/dex_file-inl.h"
#include "gc/accounting/card_table-inl.h"
#include "obj_ptr-inl.h"
diff --git a/runtime/mirror/var_handle.cc b/runtime/mirror/var_handle.cc
index 6d5ff2cfde..3079c350d2 100644
--- a/runtime/mirror/var_handle.cc
+++ b/runtime/mirror/var_handle.cc
@@ -21,7 +21,7 @@
#include "base/casts.h"
#include "class-inl.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "intrinsics_enum.h"
#include "jni/jni_internal.h"
#include "jvalue-inl.h"
diff --git a/runtime/mirror/var_handle_test.cc b/runtime/mirror/var_handle_test.cc
index 6c765d6de1..bb67a4adb4 100644
--- a/runtime/mirror/var_handle_test.cc
+++ b/runtime/mirror/var_handle_test.cc
@@ -24,7 +24,7 @@
#include "class-inl.h"
#include "class_linker-inl.h"
#include "class_loader.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_runtime_test.h"
#include "handle_scope-inl.h"
#include "jvalue-inl.h"
diff --git a/runtime/native/java_lang_Class.cc b/runtime/native/java_lang_Class.cc
index 5a73bf3383..c47d5e4fe9 100644
--- a/runtime/native/java_lang_Class.cc
+++ b/runtime/native/java_lang_Class.cc
@@ -22,7 +22,7 @@
#include "art_method-inl.h"
#include "base/enums.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "common_throws.h"
#include "dex/descriptors_names.h"
#include "dex/dex_file-inl.h"
diff --git a/runtime/native/java_lang_reflect_Constructor.cc b/runtime/native/java_lang_reflect_Constructor.cc
index f9cdc360bc..e11b0e4b03 100644
--- a/runtime/native/java_lang_reflect_Constructor.cc
+++ b/runtime/native/java_lang_reflect_Constructor.cc
@@ -21,7 +21,7 @@
#include "art_method-inl.h"
#include "base/enums.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/dex_file_annotations.h"
#include "jni/jni_internal.h"
#include "mirror/class-alloc-inl.h"
diff --git a/runtime/native/java_lang_reflect_Executable.cc b/runtime/native/java_lang_reflect_Executable.cc
index 2ce56b5153..fef16b9099 100644
--- a/runtime/native/java_lang_reflect_Executable.cc
+++ b/runtime/native/java_lang_reflect_Executable.cc
@@ -20,7 +20,7 @@
#include "nativehelper/jni_macros.h"
#include "art_method-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/dex_file_annotations.h"
#include "handle.h"
#include "jni/jni_internal.h"
diff --git a/runtime/native/java_lang_reflect_Method.cc b/runtime/native/java_lang_reflect_Method.cc
index 0d9a2570b4..66fef4cddc 100644
--- a/runtime/native/java_lang_reflect_Method.cc
+++ b/runtime/native/java_lang_reflect_Method.cc
@@ -22,7 +22,7 @@
#include "base/enums.h"
#include "class_linker-inl.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "dex/dex_file_annotations.h"
#include "jni/jni_internal.h"
#include "mirror/class-inl.h"
diff --git a/runtime/proxy_test.h b/runtime/proxy_test.h
index bdd902f9f2..0a871a4950 100644
--- a/runtime/proxy_test.h
+++ b/runtime/proxy_test.h
@@ -22,7 +22,7 @@
#include "art_method-inl.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "mirror/class-inl.h"
#include "mirror/method.h"
#include "obj_ptr-inl.h"
diff --git a/runtime/runtime.cc b/runtime/runtime.cc
index 8fbc178ed3..51042978c1 100644
--- a/runtime/runtime.cc
+++ b/runtime/runtime.cc
@@ -68,7 +68,7 @@
#include "base/unix_file/fd_file.h"
#include "base/utils.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "compiler_callbacks.h"
#include "debugger.h"
#include "dex/art_dex_file_loader.h"
diff --git a/runtime/thread.cc b/runtime/thread.cc
index e92e391498..21b8d05087 100644
--- a/runtime/thread.cc
+++ b/runtime/thread.cc
@@ -56,7 +56,7 @@
#include "base/to_str.h"
#include "base/utils.h"
#include "class_linker-inl.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "debugger.h"
#include "dex/descriptors_names.h"
#include "dex/dex_file-inl.h"
diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc
index 740fd09c63..c4593f2d0d 100644
--- a/runtime/verifier/method_verifier.cc
+++ b/runtime/verifier/method_verifier.cc
@@ -34,7 +34,7 @@
#include "base/time_utils.h"
#include "base/utils.h"
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "compiler_callbacks.h"
#include "dex/class_accessor-inl.h"
#include "dex/descriptors_names.h"
diff --git a/runtime/verifier/reg_type_cache-inl.h b/runtime/verifier/reg_type_cache-inl.h
index f62e8b6f54..036719d7bb 100644
--- a/runtime/verifier/reg_type_cache-inl.h
+++ b/runtime/verifier/reg_type_cache-inl.h
@@ -18,7 +18,7 @@
#define ART_RUNTIME_VERIFIER_REG_TYPE_CACHE_INL_H_
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "mirror/class-inl.h"
#include "mirror/method_handle_impl.h"
#include "mirror/method_type.h"
diff --git a/test/1985-structural-redefine-stack-scope/stack_scope.cc b/test/1985-structural-redefine-stack-scope/stack_scope.cc
index 5c5215bac0..02d04dd47e 100644
--- a/test/1985-structural-redefine-stack-scope/stack_scope.cc
+++ b/test/1985-structural-redefine-stack-scope/stack_scope.cc
@@ -21,7 +21,7 @@
#include <vector>
#include "class_linker.h"
-#include "class_root.h"
+#include "class_root-inl.h"
#include "jni.h"
#include "jni/jni_internal.h"
#include "mirror/class.h"