src/share/vm/prims/methodHandles.hpp

changeset 4965
6337ca4dcad8
parent 4158
65d07d9ee446
child 5178
b7fa10a3a69a
     1.1 --- a/src/share/vm/prims/methodHandles.hpp	Fri Apr 19 16:51:27 2013 -0700
     1.2 +++ b/src/share/vm/prims/methodHandles.hpp	Sat Apr 20 04:07:08 2013 -0700
     1.3 @@ -54,23 +54,23 @@
     1.4    static Handle resolve_MemberName(Handle mname, TRAPS); // compute vmtarget/vmindex from name/type
     1.5    static void expand_MemberName(Handle mname, int suppress, TRAPS);  // expand defc/name/type if missing
     1.6    static Handle new_MemberName(TRAPS);  // must be followed by init_MemberName
     1.7 -  static oop init_MemberName(oop mname_oop, oop target_oop); // compute vmtarget/vmindex from target
     1.8 -  static oop init_method_MemberName(oop mname_oop, Method* m, bool do_dispatch,
     1.9 -                                    Klass* receiver_limit);
    1.10 -  static oop init_field_MemberName(oop mname_oop, Klass* field_holder,
    1.11 +  static oop init_MemberName(Handle mname_h, Handle target_h); // compute vmtarget/vmindex from target
    1.12 +  static oop init_method_MemberName(Handle mname_h, Method* m, bool do_dispatch,
    1.13 +                                    KlassHandle receiver_limit_h);
    1.14 +  static oop init_field_MemberName(Handle mname_h, KlassHandle field_holder_h,
    1.15                                     AccessFlags mods, oop type, oop name,
    1.16                                     intptr_t offset, bool is_setter = false);
    1.17 -  static Handle init_method_MemberName(oop mname_oop, CallInfo& info, TRAPS);
    1.18 -  static Handle init_field_MemberName(oop mname_oop, FieldAccessInfo& info, TRAPS);
    1.19 +  static Handle init_method_MemberName(Handle mname_h, CallInfo& info, TRAPS);
    1.20 +  static Handle init_field_MemberName(Handle mname_h, FieldAccessInfo& info, TRAPS);
    1.21    static int method_ref_kind(Method* m, bool do_dispatch_if_possible = true);
    1.22 -  static int find_MemberNames(Klass* k, Symbol* name, Symbol* sig,
    1.23 -                              int mflags, Klass* caller,
    1.24 -                              int skip, objArrayOop results);
    1.25 +  static int find_MemberNames(KlassHandle k, Symbol* name, Symbol* sig,
    1.26 +                              int mflags, KlassHandle caller,
    1.27 +                              int skip, objArrayHandle results);
    1.28    // bit values for suppress argument to expand_MemberName:
    1.29    enum { _suppress_defc = 1, _suppress_name = 2, _suppress_type = 4 };
    1.30  
    1.31    // Generate MethodHandles adapters.
    1.32 -  static void generate_adapters();
    1.33 +                              static void generate_adapters();
    1.34  
    1.35    // Called from MethodHandlesAdapterGenerator.
    1.36    static address generate_method_handle_interpreter_entry(MacroAssembler* _masm, vmIntrinsics::ID iid);
    1.37 @@ -230,4 +230,27 @@
    1.38    void generate();
    1.39  };
    1.40  
    1.41 +//------------------------------------------------------------------------------
    1.42 +// MemberNameTable
    1.43 +//
    1.44 +class MemberNameTable : public GrowableArray<jweak> {
    1.45 + public:
    1.46 +  MemberNameTable();
    1.47 +  ~MemberNameTable();
    1.48 +  void add_member_name(jweak mem_name_ref);
    1.49 + private:
    1.50 +  int find_member_name(oop mem_name);
    1.51 +
    1.52 +#if INCLUDE_JVMTI
    1.53 + public:
    1.54 +  // RedefineClasses() API support:
    1.55 +  // If a MemberName refers to old_method then update it
    1.56 +  // to refer to new_method.
    1.57 +  void adjust_method_entries(Method** old_methods, Method** new_methods,
    1.58 +                             int methods_length, bool *trace_name_printed);
    1.59 + private:
    1.60 +  oop find_member_name_by_method(Method* old_method);
    1.61 +#endif // INCLUDE_JVMTI
    1.62 +};
    1.63 +
    1.64  #endif // SHARE_VM_PRIMS_METHODHANDLES_HPP

mercurial