< prev index next >

src/share/vm/oops/oop.hpp

Print this page
rev 12854 : [mq]: gcinterface.patch


  25 #ifndef SHARE_VM_OOPS_OOP_HPP
  26 #define SHARE_VM_OOPS_OOP_HPP
  27 
  28 #include "gc/shared/specialized_oop_closures.hpp"
  29 #include "memory/iterator.hpp"
  30 #include "memory/memRegion.hpp"
  31 #include "oops/metadata.hpp"
  32 #include "utilities/macros.hpp"
  33 
  34 // oopDesc is the top baseclass for objects classes. The {name}Desc classes describe
  35 // the format of Java objects so the fields can be accessed from C++.
  36 // oopDesc is abstract.
  37 // (see oopHierarchy for complete oop class hierarchy)
  38 //
  39 // no virtual functions allowed
  40 
  41 // store into oop with store check
  42 template <class T> inline void oop_store(T* p, oop v);
  43 template <class T> inline void oop_store(volatile T* p, oop v);
  44 
  45 extern bool always_do_update_barrier;
  46 
  47 // Forward declarations.
  48 class OopClosure;
  49 class ScanClosure;
  50 class FastScanClosure;
  51 class FilteringClosure;
  52 class BarrierSet;
  53 class CMSIsAliveClosure;
  54 
  55 class PSPromotionManager;
  56 class ParCompactionManager;
  57 
  58 class oopDesc {
  59   friend class VMStructs;
  60   friend class JVMCIVMStructs;
  61  private:
  62   volatile markOop _mark;
  63   union _metadata {
  64     Klass*      _klass;
  65     narrowKlass _compressed_klass;
  66   } _metadata;




  25 #ifndef SHARE_VM_OOPS_OOP_HPP
  26 #define SHARE_VM_OOPS_OOP_HPP
  27 
  28 #include "gc/shared/specialized_oop_closures.hpp"
  29 #include "memory/iterator.hpp"
  30 #include "memory/memRegion.hpp"
  31 #include "oops/metadata.hpp"
  32 #include "utilities/macros.hpp"
  33 
  34 // oopDesc is the top baseclass for objects classes. The {name}Desc classes describe
  35 // the format of Java objects so the fields can be accessed from C++.
  36 // oopDesc is abstract.
  37 // (see oopHierarchy for complete oop class hierarchy)
  38 //
  39 // no virtual functions allowed
  40 
  41 // store into oop with store check
  42 template <class T> inline void oop_store(T* p, oop v);
  43 template <class T> inline void oop_store(volatile T* p, oop v);
  44 


  45 // Forward declarations.
  46 class OopClosure;
  47 class ScanClosure;
  48 class FastScanClosure;
  49 class FilteringClosure;
  50 class BarrierSet;
  51 class CMSIsAliveClosure;
  52 
  53 class PSPromotionManager;
  54 class ParCompactionManager;
  55 
  56 class oopDesc {
  57   friend class VMStructs;
  58   friend class JVMCIVMStructs;
  59  private:
  60   volatile markOop _mark;
  61   union _metadata {
  62     Klass*      _klass;
  63     narrowKlass _compressed_klass;
  64   } _metadata;


< prev index next >