MethodHandles: Support and tests for invokeWithArguments.
Tracks libcore change a8cf0bffdb9e9cf031efd0d3c8b5645d45963562.
Test: make test-art-host
Change-Id: I65fbf3a82b629585324c477bdce6dabd63ae408e
diff --git a/runtime/class_linker_test.cc b/runtime/class_linker_test.cc
index 7b6c0dc..c311542 100644
--- a/runtime/class_linker_test.cc
+++ b/runtime/class_linker_test.cc
@@ -743,6 +743,8 @@
MethodHandleImplOffsets() : CheckOffsets<mirror::MethodHandleImpl>(
false, "Ljava/lang/invoke/MethodHandle;") {
addOffset(OFFSETOF_MEMBER(mirror::MethodHandleImpl, art_field_or_method_), "artFieldOrMethod");
+ addOffset(OFFSETOF_MEMBER(mirror::MethodHandleImpl, cached_spread_invoker_),
+ "cachedSpreadInvoker");
addOffset(OFFSETOF_MEMBER(mirror::MethodHandleImpl, handle_kind_), "handleKind");
addOffset(OFFSETOF_MEMBER(mirror::MethodHandleImpl, nominal_type_), "nominalType");
addOffset(OFFSETOF_MEMBER(mirror::MethodHandleImpl, method_type_), "type");
diff --git a/runtime/mirror/method_handle_impl.h b/runtime/mirror/method_handle_impl.h
index abe999a..2f26a22 100644
--- a/runtime/mirror/method_handle_impl.h
+++ b/runtime/mirror/method_handle_impl.h
@@ -84,10 +84,12 @@
static mirror::Class* StaticClass() REQUIRES_SHARED(Locks::mutator_lock_);
private:
+ // NOTE: cached_spread_invoker_ isn't used by the runtime.
+ HeapReference<mirror::MethodHandle> cached_spread_invoker_;
HeapReference<mirror::MethodType> nominal_type_;
HeapReference<mirror::MethodType> method_type_;
- uint64_t art_field_or_method_;
uint32_t handle_kind_;
+ uint64_t art_field_or_method_;
private:
static MemberOffset NominalTypeOffset() {