src/hotspot/share/oops/oop.hpp
changeset 50752 9d62da00bf15
parent 50748 d46700d64e9c
child 50800 6da12aa23b88
equal deleted inserted replaced
50751:d9132bdf6c30 50752:9d62da00bf15
    23  */
    23  */
    24 
    24 
    25 #ifndef SHARE_VM_OOPS_OOP_HPP
    25 #ifndef SHARE_VM_OOPS_OOP_HPP
    26 #define SHARE_VM_OOPS_OOP_HPP
    26 #define SHARE_VM_OOPS_OOP_HPP
    27 
    27 
    28 #include "gc/shared/specialized_oop_closures.hpp"
       
    29 #include "memory/iterator.hpp"
    28 #include "memory/iterator.hpp"
    30 #include "memory/memRegion.hpp"
    29 #include "memory/memRegion.hpp"
    31 #include "oops/access.hpp"
    30 #include "oops/access.hpp"
    32 #include "oops/metadata.hpp"
    31 #include "oops/metadata.hpp"
    33 #include "runtime/atomic.hpp"
    32 #include "runtime/atomic.hpp"
   286   inline void pc_update_contents(ParCompactionManager* cm);
   285   inline void pc_update_contents(ParCompactionManager* cm);
   287   // Parallel Scavenge
   286   // Parallel Scavenge
   288   inline void ps_push_contents(PSPromotionManager* pm);
   287   inline void ps_push_contents(PSPromotionManager* pm);
   289 #endif
   288 #endif
   290 
   289 
   291 
   290   template <typename OopClosureType>
   292   // iterators, returns size of object
   291   inline void oop_iterate(OopClosureType* cl);
   293 #define OOP_ITERATE_DECL(OopClosureType, nv_suffix)                     \
   292 
   294   inline void oop_iterate(OopClosureType* blk);                         \
   293   template <typename OopClosureType>
   295   inline void oop_iterate(OopClosureType* blk, MemRegion mr);  // Only in mr.
   294   inline void oop_iterate(OopClosureType* cl, MemRegion mr);
   296 
   295 
   297   ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_ITERATE_DECL)
   296   template <typename OopClosureType>
   298   ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_ITERATE_DECL)
   297   inline int oop_iterate_size(OopClosureType* cl);
   299 
   298 
   300 #define OOP_ITERATE_SIZE_DECL(OopClosureType, nv_suffix)                \
   299   template <typename OopClosureType>
   301   inline int oop_iterate_size(OopClosureType* blk);                     \
   300   inline int oop_iterate_size(OopClosureType* cl, MemRegion mr);
   302   inline int oop_iterate_size(OopClosureType* blk, MemRegion mr);  // Only in mr.
   301 
   303 
   302   template <typename OopClosureType>
   304   ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_ITERATE_SIZE_DECL)
   303   inline void oop_iterate_backwards(OopClosureType* cl);
   305   ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_ITERATE_SIZE_DECL)
       
   306 
       
   307 
       
   308 #if INCLUDE_OOP_OOP_ITERATE_BACKWARDS
       
   309 
       
   310 #define OOP_ITERATE_BACKWARDS_DECL(OopClosureType, nv_suffix)  \
       
   311   inline void oop_iterate_backwards(OopClosureType* blk);
       
   312 
       
   313   ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_ITERATE_BACKWARDS_DECL)
       
   314   ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_ITERATE_BACKWARDS_DECL)
       
   315 
       
   316 #endif // INCLUDE_OOP_OOP_ITERATE_BACKWARDS
       
   317 
   304 
   318   inline int oop_iterate_no_header(OopClosure* bk);
   305   inline int oop_iterate_no_header(OopClosure* bk);
   319   inline int oop_iterate_no_header(OopClosure* bk, MemRegion mr);
   306   inline int oop_iterate_no_header(OopClosure* bk, MemRegion mr);
   320 
   307 
   321   inline static bool is_instanceof_or_null(oop obj, Klass* klass);
   308   inline static bool is_instanceof_or_null(oop obj, Klass* klass);