< prev index next >

src/hotspot/share/oops/methodData.hpp

Print this page

1991 class MethodData : public Metadata {
1992   friend class VMStructs;
1993   friend class JVMCIVMStructs;
1994   friend class ProfileData;
1995   friend class TypeEntriesAtCall;
1996   friend class ciMethodData;
1997   friend class VM_ReinitializeMDO;
1998 
1999   // If you add a new field that points to any metaspace object, you
2000   // must add this field to MethodData::metaspace_pointers_do().
2001 
2002   // Back pointer to the Method*
2003   Method* _method;
2004 
2005   // Size of this oop in bytes
2006   int _size;
2007 
2008   // Cached hint for bci_to_dp and bci_to_data
2009   int _hint_di;
2010 
2011   Mutex* volatile _extra_data_lock;
2012 
2013   MethodData(const methodHandle& method);
2014 
2015   void initialize();
2016 
2017 public:
2018   MethodData();
2019 
2020   static MethodData* allocate(ClassLoaderData* loader_data, const methodHandle& method, TRAPS);
2021 
2022   virtual bool is_methodData() const { return true; }
2023 
2024   // Safely reinitialize the data in the MDO.  This is intended as a testing facility as the
2025   // reinitialization is performed at a safepoint so it's isn't cheap and it doesn't ensure that all
2026   // readers will see consistent profile data.
2027   void reinitialize();
2028 
2029   // Whole-method sticky bits and flags
2030   enum {
2031     _trap_hist_limit    = Deoptimization::Reason_TRAP_HISTORY_LENGTH,

1991 class MethodData : public Metadata {
1992   friend class VMStructs;
1993   friend class JVMCIVMStructs;
1994   friend class ProfileData;
1995   friend class TypeEntriesAtCall;
1996   friend class ciMethodData;
1997   friend class VM_ReinitializeMDO;
1998 
1999   // If you add a new field that points to any metaspace object, you
2000   // must add this field to MethodData::metaspace_pointers_do().
2001 
2002   // Back pointer to the Method*
2003   Method* _method;
2004 
2005   // Size of this oop in bytes
2006   int _size;
2007 
2008   // Cached hint for bci_to_dp and bci_to_data
2009   int _hint_di;
2010 
2011   Mutex* volatile _extra_data_lock; // FIXME: CDS support
2012 
2013   MethodData(const methodHandle& method);
2014 
2015   void initialize();
2016 
2017 public:
2018   MethodData();
2019 
2020   static MethodData* allocate(ClassLoaderData* loader_data, const methodHandle& method, TRAPS);
2021 
2022   virtual bool is_methodData() const { return true; }
2023 
2024   // Safely reinitialize the data in the MDO.  This is intended as a testing facility as the
2025   // reinitialization is performed at a safepoint so it's isn't cheap and it doesn't ensure that all
2026   // readers will see consistent profile data.
2027   void reinitialize();
2028 
2029   // Whole-method sticky bits and flags
2030   enum {
2031     _trap_hist_limit    = Deoptimization::Reason_TRAP_HISTORY_LENGTH,
< prev index next >