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 |