src/hotspot/share/oops/methodData.hpp
changeset 53278 4b469f5f4bf2
parent 51334 cc2c79d22508
child 53293 64049c8e7452
equal deleted inserted replaced
53250:10621b0e8e38 53278:4b469f5f4bf2
  1941 // from the base of the data entry array.  A "displacement" is the byte offset
  1941 // from the base of the data entry array.  A "displacement" is the byte offset
  1942 // in certain ProfileData objects that indicate the amount the mdp must be
  1942 // in certain ProfileData objects that indicate the amount the mdp must be
  1943 // adjusted in the event of a change in control flow.
  1943 // adjusted in the event of a change in control flow.
  1944 //
  1944 //
  1945 
  1945 
  1946 class CleanExtraDataClosure;
  1946 class CleanExtraDataClosure : public StackObj {
       
  1947 public:
       
  1948   virtual bool is_live(Method* m) = 0;
       
  1949 };
       
  1950 
  1947 
  1951 
  1948 class MethodData : public Metadata {
  1952 class MethodData : public Metadata {
  1949   friend class VMStructs;
  1953   friend class VMStructs;
  1950   friend class JVMCIVMStructs;
  1954   friend class JVMCIVMStructs;
  1951 private:
  1955 private:
  2114   static bool profile_return_for_invoke(const methodHandle& m, int bci);
  2118   static bool profile_return_for_invoke(const methodHandle& m, int bci);
  2115   static int profile_parameters_flag();
  2119   static int profile_parameters_flag();
  2116   static bool profile_parameters_jsr292_only();
  2120   static bool profile_parameters_jsr292_only();
  2117   static bool profile_all_parameters();
  2121   static bool profile_all_parameters();
  2118 
  2122 
  2119   void clean_extra_data(CleanExtraDataClosure* cl);
       
  2120   void clean_extra_data_helper(DataLayout* dp, int shift, bool reset = false);
  2123   void clean_extra_data_helper(DataLayout* dp, int shift, bool reset = false);
  2121   void verify_extra_data_clean(CleanExtraDataClosure* cl);
  2124   void verify_extra_data_clean(CleanExtraDataClosure* cl);
  2122 
  2125 
  2123 public:
  2126 public:
       
  2127   void clean_extra_data(CleanExtraDataClosure* cl);
       
  2128 
  2124   static int header_size() {
  2129   static int header_size() {
  2125     return sizeof(MethodData)/wordSize;
  2130     return sizeof(MethodData)/wordSize;
  2126   }
  2131   }
  2127 
  2132 
  2128   // Compute the size of a MethodData* before it is created.
  2133   // Compute the size of a MethodData* before it is created.