hotspot/src/share/vm/oops/methodOop.hpp
changeset 4581 e89fbd1bcb3d
parent 4567 7fc02fbe5c7a
child 4750 71fd601907dc
equal deleted inserted replaced
4580:db05951a970c 4581:e89fbd1bcb3d
     1 /*
     1 /*
     2  * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
     2  * Copyright 1997-2010 Sun Microsystems, Inc.  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.
   523   // Reflection support
   523   // Reflection support
   524   bool is_overridden_in(klassOop k) const;
   524   bool is_overridden_in(klassOop k) const;
   525 
   525 
   526   // JSR 292 support
   526   // JSR 292 support
   527   bool is_method_handle_invoke() const              { return access_flags().is_method_handle_invoke(); }
   527   bool is_method_handle_invoke() const              { return access_flags().is_method_handle_invoke(); }
       
   528   // Tests if this method is an internal adapter frame from the
       
   529   // MethodHandleCompiler.
       
   530   bool is_method_handle_adapter() const;
   528   static methodHandle make_invoke_method(KlassHandle holder,
   531   static methodHandle make_invoke_method(KlassHandle holder,
   529                                          symbolHandle signature,
   532                                          symbolHandle signature,
   530                                          Handle method_type,
   533                                          Handle method_type,
   531                                          TRAPS);
   534                                          TRAPS);
   532   // these operate only on invoke methods:
   535   // these operate only on invoke methods:
   536   // method handles want to be able to push a few extra values (e.g., a bound receiver), and
   539   // method handles want to be able to push a few extra values (e.g., a bound receiver), and
   537   // invokedynamic sometimes needs to push a bootstrap method, call site, and arglist,
   540   // invokedynamic sometimes needs to push a bootstrap method, call site, and arglist,
   538   // all without checking for a stack overflow
   541   // all without checking for a stack overflow
   539   static int extra_stack_entries() { return (EnableMethodHandles ? (int)MethodHandlePushLimit : 0) + (EnableInvokeDynamic ? 3 : 0); }
   542   static int extra_stack_entries() { return (EnableMethodHandles ? (int)MethodHandlePushLimit : 0) + (EnableInvokeDynamic ? 3 : 0); }
   540   static int extra_stack_words();  // = extra_stack_entries() * Interpreter::stackElementSize()
   543   static int extra_stack_words();  // = extra_stack_entries() * Interpreter::stackElementSize()
       
   544 
   541   // RedefineClasses() support:
   545   // RedefineClasses() support:
   542   bool is_old() const                               { return access_flags().is_old(); }
   546   bool is_old() const                               { return access_flags().is_old(); }
   543   void set_is_old()                                 { _access_flags.set_is_old(); }
   547   void set_is_old()                                 { _access_flags.set_is_old(); }
   544   bool is_obsolete() const                          { return access_flags().is_obsolete(); }
   548   bool is_obsolete() const                          { return access_flags().is_obsolete(); }
   545   void set_is_obsolete()                            { _access_flags.set_is_obsolete(); }
   549   void set_is_obsolete()                            { _access_flags.set_is_obsolete(); }