hotspot/src/share/vm/prims/methodHandles.hpp
changeset 46505 fd4bc78630b1
parent 46329 53ccc37bda19
child 46560 388aa8d67c80
equal deleted inserted replaced
46504:38048d4d20e7 46505:fd4bc78630b1
    61 
    61 
    62  public:
    62  public:
    63   // working with member names
    63   // working with member names
    64   static Handle resolve_MemberName(Handle mname, Klass* caller, TRAPS); // compute vmtarget/vmindex from name/type
    64   static Handle resolve_MemberName(Handle mname, Klass* caller, TRAPS); // compute vmtarget/vmindex from name/type
    65   static void expand_MemberName(Handle mname, int suppress, TRAPS);  // expand defc/name/type if missing
    65   static void expand_MemberName(Handle mname, int suppress, TRAPS);  // expand defc/name/type if missing
    66   static Handle new_MemberName(TRAPS);  // must be followed by init_MemberName
    66   static oop init_MemberName(Handle mname_h, Handle target_h, TRAPS); // compute vmtarget/vmindex from target
    67   static oop init_MemberName(Handle mname_h, Handle target_h); // compute vmtarget/vmindex from target
       
    68   static oop init_field_MemberName(Handle mname_h, fieldDescriptor& fd, bool is_setter = false);
    67   static oop init_field_MemberName(Handle mname_h, fieldDescriptor& fd, bool is_setter = false);
    69   static oop init_method_MemberName(Handle mname_h, CallInfo& info, bool intern = true);
    68   static oop init_method_MemberName(Handle mname_h, CallInfo& info);
    70   static int method_ref_kind(Method* m, bool do_dispatch_if_possible = true);
    69   static int method_ref_kind(Method* m, bool do_dispatch_if_possible = true);
    71   static int find_MemberNames(Klass* k, Symbol* name, Symbol* sig,
    70   static int find_MemberNames(Klass* k, Symbol* name, Symbol* sig,
    72                               int mflags, Klass* caller,
    71                               int mflags, Klass* caller,
    73                               int skip, objArrayHandle results);
    72                               int skip, objArrayHandle results, TRAPS);
    74   // bit values for suppress argument to expand_MemberName:
    73   // bit values for suppress argument to expand_MemberName:
    75   enum { _suppress_defc = 1, _suppress_name = 2, _suppress_type = 4 };
    74   enum { _suppress_defc = 1, _suppress_name = 2, _suppress_type = 4 };
    76 
    75 
    77   // CallSite support
    76   // CallSite support
    78   static void add_dependent_nmethod(oop call_site, nmethod* nm);
    77   static void add_dependent_nmethod(oop call_site, nmethod* nm);
   225   MethodHandlesAdapterGenerator(CodeBuffer* code) : StubCodeGenerator(code, PrintMethodHandleStubs) {}
   224   MethodHandlesAdapterGenerator(CodeBuffer* code) : StubCodeGenerator(code, PrintMethodHandleStubs) {}
   226 
   225 
   227   void generate();
   226   void generate();
   228 };
   227 };
   229 
   228 
   230 //------------------------------------------------------------------------------
       
   231 // MemberNameTable
       
   232 //
       
   233 
       
   234 class MemberNameTable : public GrowableArray<jweak> {
       
   235  public:
       
   236   MemberNameTable(int methods_cnt);
       
   237   ~MemberNameTable();
       
   238   oop add_member_name(jweak mem_name_ref);
       
   239   oop find_or_add_member_name(jweak mem_name_ref);
       
   240 
       
   241 #if INCLUDE_JVMTI
       
   242   // RedefineClasses() API support:
       
   243   // If a MemberName refers to old_method then update it to refer to new_method.
       
   244   void adjust_method_entries(InstanceKlass* holder, bool * trace_name_printed);
       
   245 #endif // INCLUDE_JVMTI
       
   246 };
       
   247 
       
   248 #endif // SHARE_VM_PRIMS_METHODHANDLES_HPP
   229 #endif // SHARE_VM_PRIMS_METHODHANDLES_HPP