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 |