summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/interpreter/interpreter_common.h2
-rw-r--r--runtime/interpreter/unstarted_runtime_test.cc19
2 files changed, 14 insertions, 7 deletions
diff --git a/runtime/interpreter/interpreter_common.h b/runtime/interpreter/interpreter_common.h
index 38edc7a9e7..74fec48342 100644
--- a/runtime/interpreter/interpreter_common.h
+++ b/runtime/interpreter/interpreter_common.h
@@ -241,7 +241,7 @@ static inline bool DoInvokeVirtualQuick(Thread* self, ShadowFrame& shadow_frame,
}
CHECK(receiver->GetClass()->ShouldHaveEmbeddedVTable());
ArtMethod* const called_method = receiver->GetClass()->GetEmbeddedVTableEntry(
- vtable_idx, kRuntimePointerSize);
+ vtable_idx, Runtime::Current()->GetClassLinker()->GetImagePointerSize());
if (UNLIKELY(called_method == nullptr)) {
CHECK(self->IsExceptionPending());
result->SetJ(0);
diff --git a/runtime/interpreter/unstarted_runtime_test.cc b/runtime/interpreter/unstarted_runtime_test.cc
index c314f3c35e..c2ef72460d 100644
--- a/runtime/interpreter/unstarted_runtime_test.cc
+++ b/runtime/interpreter/unstarted_runtime_test.cc
@@ -386,8 +386,9 @@ TEST_F(UnstartedRuntimeTest, StringInit) {
Thread* self = Thread::Current();
ScopedObjectAccess soa(self);
mirror::Class* klass = mirror::String::GetJavaLangString();
- ArtMethod* method = klass->FindDeclaredDirectMethod("<init>", "(Ljava/lang/String;)V",
- kRuntimePointerSize);
+ ArtMethod* method =
+ klass->FindDeclaredDirectMethod("<init>", "(Ljava/lang/String;)V",
+ Runtime::Current()->GetClassLinker()->GetImagePointerSize());
// create instruction data for invoke-direct {v0, v1} of method with fake index
uint16_t inst_data[3] = { 0x2070, 0x0000, 0x0010 };
@@ -1335,10 +1336,16 @@ TEST_F(UnstartedRuntimeTest, ConstructorNewInstance0) {
ArtMethod* throw_cons = throw_class->FindDeclaredDirectMethod(
"<init>", "(Ljava/lang/String;)V", class_linker->GetImagePointerSize());
ASSERT_TRUE(throw_cons != nullptr);
-
- Handle<mirror::Constructor> cons = hs.NewHandle(
- mirror::Constructor::CreateFromArtMethod<kRuntimePointerSize, false>(self, throw_cons));
- ASSERT_TRUE(cons != nullptr);
+ Handle<mirror::Constructor> cons;
+ if (class_linker->GetImagePointerSize() == PointerSize::k64) {
+ cons = hs.NewHandle(
+ mirror::Constructor::CreateFromArtMethod<PointerSize::k64, false>(self, throw_cons));
+ ASSERT_TRUE(cons != nullptr);
+ } else {
+ cons = hs.NewHandle(
+ mirror::Constructor::CreateFromArtMethod<PointerSize::k32, false>(self, throw_cons));
+ ASSERT_TRUE(cons != nullptr);
+ }
Handle<mirror::ObjectArray<mirror::Object>> args = hs.NewHandle(
mirror::ObjectArray<mirror::Object>::Alloc(