1 /* |
1 /* |
2 * Copyright (c) 2008, 2014, 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. |
58 static Handle resolve_MemberName(Handle mname, KlassHandle caller, TRAPS); // compute vmtarget/vmindex from name/type |
58 static Handle resolve_MemberName(Handle mname, KlassHandle caller, TRAPS); // compute vmtarget/vmindex from name/type |
59 static void expand_MemberName(Handle mname, int suppress, TRAPS); // expand defc/name/type if missing |
59 static void expand_MemberName(Handle mname, int suppress, TRAPS); // expand defc/name/type if missing |
60 static Handle new_MemberName(TRAPS); // must be followed by init_MemberName |
60 static Handle new_MemberName(TRAPS); // must be followed by init_MemberName |
61 static oop init_MemberName(Handle mname_h, Handle target_h); // compute vmtarget/vmindex from target |
61 static oop init_MemberName(Handle mname_h, Handle target_h); // compute vmtarget/vmindex from target |
62 static oop init_field_MemberName(Handle mname_h, fieldDescriptor& fd, bool is_setter = false); |
62 static oop init_field_MemberName(Handle mname_h, fieldDescriptor& fd, bool is_setter = false); |
63 static oop init_method_MemberName(Handle mname_h, CallInfo& info); |
63 static oop init_method_MemberName(Handle mname_h, CallInfo& info, bool intern = true); |
64 static int method_ref_kind(Method* m, bool do_dispatch_if_possible = true); |
64 static int method_ref_kind(Method* m, bool do_dispatch_if_possible = true); |
65 static int find_MemberNames(KlassHandle k, Symbol* name, Symbol* sig, |
65 static int find_MemberNames(KlassHandle k, Symbol* name, Symbol* sig, |
66 int mflags, KlassHandle caller, |
66 int mflags, KlassHandle caller, |
67 int skip, objArrayHandle results); |
67 int skip, objArrayHandle results); |
68 // bit values for suppress argument to expand_MemberName: |
68 // bit values for suppress argument to expand_MemberName: |
234 |
234 |
235 class MemberNameTable : public GrowableArray<jweak> { |
235 class MemberNameTable : public GrowableArray<jweak> { |
236 public: |
236 public: |
237 MemberNameTable(int methods_cnt); |
237 MemberNameTable(int methods_cnt); |
238 ~MemberNameTable(); |
238 ~MemberNameTable(); |
239 void add_member_name(jweak mem_name_ref); |
239 oop add_member_name(jweak mem_name_ref); |
|
240 oop find_or_add_member_name(jweak mem_name_ref); |
240 |
241 |
241 #if INCLUDE_JVMTI |
242 #if INCLUDE_JVMTI |
242 // RedefineClasses() API support: |
243 // RedefineClasses() API support: |
243 // If a MemberName refers to old_method then update it to refer to new_method. |
244 // 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 void adjust_method_entries(InstanceKlass* holder, bool * trace_name_printed); |