--- a/hotspot/src/share/vm/prims/methodHandles.hpp Fri Apr 30 08:37:24 2010 -0700
+++ b/hotspot/src/share/vm/prims/methodHandles.hpp Sat May 01 02:42:18 2010 -0700
@@ -216,6 +216,9 @@
return (conv >> CONV_VMINFO_SHIFT) & CONV_VMINFO_MASK;
}
+ // Bit mask of conversion_op values. May vary by platform.
+ static int adapter_conversion_ops_supported_mask();
+
// Offset in words that the interpreter stack pointer moves when an argument is pushed.
// The stack_move value must always be a multiple of this.
static int stack_move_unit() {
@@ -262,8 +265,9 @@
// working with member names
static void resolve_MemberName(Handle mname, TRAPS); // compute vmtarget/vmindex from name/type
static void expand_MemberName(Handle mname, int suppress, TRAPS); // expand defc/name/type if missing
+ static Handle new_MemberName(TRAPS); // must be followed by init_MemberName
static void init_MemberName(oop mname_oop, oop target); // compute vmtarget/vmindex from target
- static void init_MemberName(oop mname_oop, methodOop m, bool do_dispatch);
+ static void init_MemberName(oop mname_oop, methodOop m, bool do_dispatch = true);
static void init_MemberName(oop mname_oop, klassOop field_holder, AccessFlags mods, int offset);
static int find_MemberNames(klassOop k, symbolOop name, symbolOop sig,
int mflags, klassOop caller,
@@ -300,6 +304,7 @@
// format of query to getConstant:
GC_JVM_PUSH_LIMIT = 0,
GC_JVM_STACK_MOVE_UNIT = 1,
+ GC_CONV_OP_IMPLEMENTED_MASK = 2,
// format of result from getTarget / encode_target:
ETF_HANDLE_OR_METHOD_NAME = 0, // all available data (immediate MH or method)
@@ -311,6 +316,11 @@
static oop encode_target(Handle mh, int format, TRAPS); // report vmtarget (to Java code)
static bool class_cast_needed(klassOop src, klassOop dst);
+ static instanceKlassHandle resolve_instance_klass(oop java_mirror_oop, TRAPS);
+ static instanceKlassHandle resolve_instance_klass(jclass java_mirror_jh, TRAPS) {
+ return resolve_instance_klass(JNIHandles::resolve(java_mirror_jh), THREAD);
+ }
+
private:
// These checkers operate on a pair of whole MethodTypes:
static const char* check_method_type_change(oop src_mtype, int src_beg, int src_end,