src/hotspot/share/gc/z/zNMethodData.hpp
changeset 53921 a590b6107ab3
parent 53892 33790c8e4647
child 54171 07943af21b96
equal deleted inserted replaced
53920:7a72441858bb 53921:a590b6107ab3
    20  * or visit www.oracle.com if you need additional information or have any
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 
    23 
    24 #include "gc/z/zLock.hpp"
    24 #include "gc/z/zLock.hpp"
       
    25 #include "memory/allocation.hpp"
    25 #include "oops/oopsHierarchy.hpp"
    26 #include "oops/oopsHierarchy.hpp"
    26 #include "utilities/globalDefinitions.hpp"
    27 #include "utilities/globalDefinitions.hpp"
    27 
    28 
    28 #ifndef SHARE_GC_Z_ZNMETHODDATA_HPP
    29 #ifndef SHARE_GC_Z_ZNMETHODDATA_HPP
    29 #define SHARE_GC_Z_ZNMETHODDATA_HPP
    30 #define SHARE_GC_Z_ZNMETHODDATA_HPP
    49   oop** immediates_end() const;
    50   oop** immediates_end() const;
    50 
    51 
    51   bool has_non_immediates() const;
    52   bool has_non_immediates() const;
    52 };
    53 };
    53 
    54 
    54 class ZNMethodData {
    55 class ZNMethodData : public CHeapObj<mtGC> {
    55 private:
    56 private:
    56   ZReentrantLock             _lock;
    57   ZReentrantLock             _lock;
    57   ZNMethodDataOops* volatile _oops;
    58   ZNMethodDataOops* volatile _oops;
    58 
    59 
    59   ZNMethodData(nmethod* nm);
       
    60 
       
    61 public:
    60 public:
    62   static ZNMethodData* create(nmethod* nm);
    61   ZNMethodData();
    63   static void destroy(ZNMethodData* data);
    62   ~ZNMethodData();
    64 
    63 
    65   ZReentrantLock* lock();
    64   ZReentrantLock* lock();
    66 
    65 
    67   ZNMethodDataOops* oops() const;
    66   ZNMethodDataOops* oops() const;
    68   ZNMethodDataOops* swap_oops(ZNMethodDataOops* oops);
    67   ZNMethodDataOops* swap_oops(ZNMethodDataOops* oops);