1 /* |
1 /* |
2 * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
64 static Handle resolve_MemberName(Handle mname, KlassHandle caller, TRAPS); // compute vmtarget/vmindex from name/type |
64 static Handle resolve_MemberName(Handle mname, KlassHandle 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 Handle new_MemberName(TRAPS); // must be followed by init_MemberName |
67 static oop init_MemberName(Handle mname_h, Handle target_h); // 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); |
68 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); |
69 static oop init_method_MemberName(Handle mname_h, CallInfo& info, bool intern = true); |
70 static int method_ref_kind(Method* m, bool do_dispatch_if_possible = true); |
70 static int method_ref_kind(Method* m, bool do_dispatch_if_possible = true); |
71 static int find_MemberNames(KlassHandle k, Symbol* name, Symbol* sig, |
71 static int find_MemberNames(KlassHandle k, Symbol* name, Symbol* sig, |
72 int mflags, KlassHandle caller, |
72 int mflags, KlassHandle caller, |
73 int skip, objArrayHandle results); |
73 int skip, objArrayHandle results); |
74 // bit values for suppress argument to expand_MemberName: |
74 // bit values for suppress argument to expand_MemberName: |
233 |
233 |
234 class MemberNameTable : public GrowableArray<jweak> { |
234 class MemberNameTable : public GrowableArray<jweak> { |
235 public: |
235 public: |
236 MemberNameTable(int methods_cnt); |
236 MemberNameTable(int methods_cnt); |
237 ~MemberNameTable(); |
237 ~MemberNameTable(); |
238 void add_member_name(jweak mem_name_ref); |
238 oop add_member_name(jweak mem_name_ref); |
|
239 oop find_or_add_member_name(jweak mem_name_ref); |
239 |
240 |
240 #if INCLUDE_JVMTI |
241 #if INCLUDE_JVMTI |
241 // RedefineClasses() API support: |
242 // RedefineClasses() API support: |
242 // If a MemberName refers to old_method then update it to refer to new_method. |
243 // If a MemberName refers to old_method then update it to refer to new_method. |
243 void adjust_method_entries(InstanceKlass* holder, bool * trace_name_printed); |
244 void adjust_method_entries(InstanceKlass* holder, bool * trace_name_printed); |