hotspot/src/share/vm/prims/methodHandles.hpp
changeset 43929 9a572e758c9b
parent 40102 23ff468d69b4
child 46329 53ccc37bda19
equal deleted inserted replaced
43785:1ea025bbd11d 43929:9a572e758c9b
     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);