< prev index next >

src/hotspot/share/oops/oop.hpp

Print this page




  25 #ifndef SHARE_OOPS_OOP_HPP
  26 #define SHARE_OOPS_OOP_HPP
  27 
  28 #include "memory/iterator.hpp"
  29 #include "memory/memRegion.hpp"
  30 #include "oops/access.hpp"
  31 #include "oops/markWord.hpp"
  32 #include "oops/metadata.hpp"
  33 #include "runtime/atomic.hpp"
  34 #include "utilities/macros.hpp"
  35 
  36 // oopDesc is the top baseclass for objects classes. The {name}Desc classes describe
  37 // the format of Java objects so the fields can be accessed from C++.
  38 // oopDesc is abstract.
  39 // (see oopHierarchy for complete oop class hierarchy)
  40 //
  41 // no virtual functions allowed
  42 
  43 // Forward declarations.
  44 class OopClosure;
  45 class ScanClosure;
  46 class FastScanClosure;
  47 class FilteringClosure;
  48 
  49 class PSPromotionManager;
  50 class ParCompactionManager;
  51 
  52 class oopDesc {
  53   friend class VMStructs;
  54   friend class JVMCIVMStructs;
  55  private:
  56   volatile markWord _mark;
  57   union _metadata {
  58     Klass*      _klass;
  59     narrowKlass _compressed_klass;
  60   } _metadata;
  61 
  62  public:
  63   inline markWord  mark()          const;
  64   inline markWord  mark_raw()      const;
  65   inline markWord* mark_addr_raw() const;




  25 #ifndef SHARE_OOPS_OOP_HPP
  26 #define SHARE_OOPS_OOP_HPP
  27 
  28 #include "memory/iterator.hpp"
  29 #include "memory/memRegion.hpp"
  30 #include "oops/access.hpp"
  31 #include "oops/markWord.hpp"
  32 #include "oops/metadata.hpp"
  33 #include "runtime/atomic.hpp"
  34 #include "utilities/macros.hpp"
  35 
  36 // oopDesc is the top baseclass for objects classes. The {name}Desc classes describe
  37 // the format of Java objects so the fields can be accessed from C++.
  38 // oopDesc is abstract.
  39 // (see oopHierarchy for complete oop class hierarchy)
  40 //
  41 // no virtual functions allowed
  42 
  43 // Forward declarations.
  44 class OopClosure;

  45 class FastScanClosure;
  46 class FilteringClosure;
  47 
  48 class PSPromotionManager;
  49 class ParCompactionManager;
  50 
  51 class oopDesc {
  52   friend class VMStructs;
  53   friend class JVMCIVMStructs;
  54  private:
  55   volatile markWord _mark;
  56   union _metadata {
  57     Klass*      _klass;
  58     narrowKlass _compressed_klass;
  59   } _metadata;
  60 
  61  public:
  62   inline markWord  mark()          const;
  63   inline markWord  mark_raw()      const;
  64   inline markWord* mark_addr_raw() const;


< prev index next >