#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"
#include "intrinsics.h"
+#include "art_field-inl.h"
#include "art_method-inl.h"
#include "class_linker.h"
#include "driver/compiler_driver.h"
#include "reference_type_propagation.h"
+#include "art_field-inl.h"
#include "art_method-inl.h"
#include "base/enums.h"
#include "class_linker-inl.h"
#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"
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_);
return result;
}
+void ArtField::GetAccessFlagsDCheck() {
+ CHECK(GetDeclaringClass()->IsLoaded() || GetDeclaringClass()->IsErroneous());
+}
+
+void ArtField::GetOffsetDCheck() {
+ CHECK(GetDeclaringClass()->IsResolved());
+}
} // namespace art
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.
}
// 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_));
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;
#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"
#include "runtime.h"
#include "stack_map.h"
#include "thread.h"
+#include "well_known_classes.h"
namespace art {
#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"
#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"
#include "class-inl.h"
+#include "art_field-inl.h"
#include "class_ext-inl.h"
namespace art {
#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"
#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 {
#include "android-base/stringprintf.h"
+#include "art_field-inl.h"
#include "class_linker.h"
#include "class_linker-inl.h"
#include "common_throws.h"
#include "reflection-inl.h"
#include "scoped_fast_native_object_access-inl.h"
#include "utils.h"
+#include "well_known_classes.h"
namespace art {
#include "ti_phase.h"
#include "ti_redefine.h"
#include "utils.h"
+#include "well_known_classes.h"
namespace openjdkjvmti {
#include "android-base/stringprintf.h"
+#include "art_field-inl.h"
#include "art_jvmti.h"
#include "base/array_slice.h"
#include "base/logging.h"
#include "android-base/stringprintf.h"
+#include "art_field-inl.h"
#include "art_method-inl.h"
#include "art_jvmti.h"
#include "base/array_slice.h"
#include "jni.h"
+#include "art_field-inl.h"
#include "art_jvmti.h"
#include "base/enums.h"
#include "base/macros.h"
#include "ti_phase.h"
#include "thread-inl.h"
#include "thread_list.h"
+#include "well_known_classes.h"
namespace openjdkjvmti {
#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"
#include "thread-inl.h"
#include "thread_list.h"
#include "thread_pool.h"
+#include "well_known_classes.h"
namespace openjdkjvmti {
#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"
#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"
#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"
#include <cstring>
+#include "art_field-inl.h"
#include "art_method-inl.h"
#include "base/stl_util.h"
#include "compiler_callbacks.h"