From 53b8b09fc80329539585dcf43657bc5f4ecefdff Mon Sep 17 00:00:00 2001 From: Ian Rogers Date: Thu, 13 Mar 2014 23:45:53 -0700 Subject: Refactor reflective method invocation. Move invocation code out of JNI internal into reflection, including ArgArray code. Make reflective invocation use the ArgArray to build arguments rather than allocating a jvalue[] and unboxing arguments into that. Move reflection part of jni_internal_test into reflection_test. Make greater use of fast JNI. Change-Id: Ib381372df5f9a83679e30e7275de24fa0e6b1057 --- runtime/entrypoints/interpreter/interpreter_entrypoints.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'runtime/entrypoints/interpreter') diff --git a/runtime/entrypoints/interpreter/interpreter_entrypoints.cc b/runtime/entrypoints/interpreter/interpreter_entrypoints.cc index 2067a45..a0ba6b9 100644 --- a/runtime/entrypoints/interpreter/interpreter_entrypoints.cc +++ b/runtime/entrypoints/interpreter/interpreter_entrypoints.cc @@ -16,10 +16,10 @@ #include "class_linker.h" #include "interpreter/interpreter.h" -#include "invoke_arg_array_builder.h" #include "mirror/art_method-inl.h" #include "mirror/object-inl.h" #include "object_utils.h" +#include "reflection.h" #include "runtime.h" #include "stack.h" @@ -46,9 +46,7 @@ extern "C" void artInterpreterToCompiledCodeBridge(Thread* self, MethodHelper& m } uint16_t arg_offset = (code_item == NULL) ? 0 : code_item->registers_size_ - code_item->ins_size_; if (kUsePortableCompiler) { - ArgArray arg_array(mh.GetShorty(), mh.GetShortyLength()); - arg_array.BuildArgArrayFromFrame(shadow_frame, arg_offset); - method->Invoke(self, arg_array.GetArray(), arg_array.GetNumBytes(), result, mh.GetShorty()); + InvokeWithShadowFrame(self, shadow_frame, arg_offset, mh, result); } else { method->Invoke(self, shadow_frame->GetVRegArgs(arg_offset), (shadow_frame->NumberOfVRegs() - arg_offset) * sizeof(uint32_t), -- cgit v1.1