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