< prev index next >

src/hotspot/share/oops/oop.hpp

Print this page




  23  */
  24 
  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 extern bool always_do_update_barrier;
  44 
  45 // Forward declarations.
  46 class OopClosure;
  47 class ScanClosure;
  48 class FastScanClosure;
  49 class FilteringClosure;
  50 class CMSIsAliveClosure;
  51 
  52 class PSPromotionManager;
  53 class ParCompactionManager;
  54 
  55 class oopDesc {
  56   friend class VMStructs;
  57   friend class JVMCIVMStructs;
  58  private:
  59   volatile markWord _mark;
  60   union _metadata {
  61     Klass*      _klass;
  62     narrowKlass _compressed_klass;
  63   } _metadata;
  64 




  23  */
  24 
  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 class CMSIsAliveClosure;
  49 
  50 class PSPromotionManager;
  51 class ParCompactionManager;
  52 
  53 class oopDesc {
  54   friend class VMStructs;
  55   friend class JVMCIVMStructs;
  56  private:
  57   volatile markWord _mark;
  58   union _metadata {
  59     Klass*      _klass;
  60     narrowKlass _compressed_klass;
  61   } _metadata;
  62 


< prev index next >