src/share/vm/prims/methodHandles.hpp

changeset 1862
cd5dbf694d45
parent 1861
2338d41fbd81
child 1907
c18cbe5936b8
     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,

mercurial