ART: Convert pointer size to enum
Move away from size_t to dedicated enum (class).
Bug: 30373134
Bug: 30419309
Test: m test-art-host
Change-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269
diff --git a/runtime/dex_file.cc b/runtime/dex_file.cc
index 2a2d2c0..16087a5 100644
--- a/runtime/dex_file.cc
+++ b/runtime/dex_file.cc
@@ -29,6 +29,7 @@
#include "art_field-inl.h"
#include "art_method-inl.h"
+#include "base/enums.h"
#include "base/file_magic.h"
#include "base/hash_map.h"
#include "base/logging.h"
@@ -1328,7 +1329,7 @@
AnnotationValue annotation_value;
StackHandleScope<2> hs(Thread::Current());
Handle<mirror::Class> h_klass(hs.NewHandle(klass));
- size_t pointer_size = Runtime::Current()->GetClassLinker()->GetImagePointerSize();
+ PointerSize pointer_size = Runtime::Current()->GetClassLinker()->GetImagePointerSize();
Handle<mirror::Class> return_type(hs.NewHandle(
method->GetReturnType(true /* resolve */, pointer_size)));
if (!ProcessAnnotationValue(h_klass, &annotation, &annotation_value, return_type, kAllObjects)) {
@@ -1620,12 +1621,12 @@
Handle<mirror::String> string_name(
hs.NewHandle(mirror::String::AllocFromModifiedUtf8(self, name)));
+ PointerSize pointer_size = Runtime::Current()->GetClassLinker()->GetImagePointerSize();
ArtMethod* annotation_method =
- annotation_class->FindDeclaredVirtualMethodByName(name, sizeof(void*));
+ annotation_class->FindDeclaredVirtualMethodByName(name, pointer_size);
if (annotation_method == nullptr) {
return nullptr;
}
- size_t pointer_size = Runtime::Current()->GetClassLinker()->GetImagePointerSize();
Handle<mirror::Class> method_return(hs.NewHandle(
annotation_method->GetReturnType(true /* resolve */, pointer_size)));
@@ -1640,11 +1641,12 @@
Handle<mirror::Object> new_member(hs.NewHandle(annotation_member_class->AllocObject(self)));
mirror::Method* method_obj_ptr;
DCHECK(!Runtime::Current()->IsActiveTransaction());
- if (pointer_size == 8U) {
- method_obj_ptr = mirror::Method::CreateFromArtMethod<8U, false>(self, annotation_method);
+ if (pointer_size == PointerSize::k64) {
+ method_obj_ptr = mirror::Method::CreateFromArtMethod<PointerSize::k64, false>(
+ self, annotation_method);
} else {
- DCHECK_EQ(pointer_size, 4U);
- method_obj_ptr = mirror::Method::CreateFromArtMethod<4U, false>(self, annotation_method);
+ method_obj_ptr = mirror::Method::CreateFromArtMethod<PointerSize::k32, false>(
+ self, annotation_method);
}
Handle<mirror::Method> method_object(hs.NewHandle(method_obj_ptr));
@@ -1960,22 +1962,24 @@
if (method == nullptr) {
return false;
}
- size_t pointer_size = class_linker->GetImagePointerSize();
+ PointerSize pointer_size = class_linker->GetImagePointerSize();
set_object = true;
DCHECK(!Runtime::Current()->IsActiveTransaction());
if (method->IsConstructor()) {
- if (pointer_size == 8U) {
- element_object = mirror::Constructor::CreateFromArtMethod<8U, false>(self, method);
+ if (pointer_size == PointerSize::k64) {
+ element_object = mirror::Constructor::CreateFromArtMethod<PointerSize::k64,
+ false>(self, method);
} else {
- DCHECK_EQ(pointer_size, 4U);
- element_object = mirror::Constructor::CreateFromArtMethod<4U, false>(self, method);
+ element_object = mirror::Constructor::CreateFromArtMethod<PointerSize::k32,
+ false>(self, method);
}
} else {
- if (pointer_size == 8U) {
- element_object = mirror::Method::CreateFromArtMethod<8U, false>(self, method);
+ if (pointer_size == PointerSize::k64) {
+ element_object = mirror::Method::CreateFromArtMethod<PointerSize::k64,
+ false>(self, method);
} else {
- DCHECK_EQ(pointer_size, 4U);
- element_object = mirror::Method::CreateFromArtMethod<4U, false>(self, method);
+ element_object = mirror::Method::CreateFromArtMethod<PointerSize::k32,
+ false>(self, method);
}
}
if (element_object == nullptr) {
@@ -1998,12 +2002,11 @@
return false;
}
set_object = true;
- size_t pointer_size = Runtime::Current()->GetClassLinker()->GetImagePointerSize();
- if (pointer_size == 8) {
- element_object = mirror::Field::CreateFromArtField<8U>(self, field, true);
+ PointerSize pointer_size = Runtime::Current()->GetClassLinker()->GetImagePointerSize();
+ if (pointer_size == PointerSize::k64) {
+ element_object = mirror::Field::CreateFromArtField<PointerSize::k64>(self, field, true);
} else {
- DCHECK_EQ(pointer_size, 4U);
- element_object = mirror::Field::CreateFromArtField<4U>(self, field, true);
+ element_object = mirror::Field::CreateFromArtField<PointerSize::k32>(self, field, true);
}
if (element_object == nullptr) {
return false;