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