hotspot/src/share/vm/oops/typeArrayKlass.hpp
changeset 30150 d9c940aa42ef
parent 22234 da823d78ad65
child 30880 efe35e08179f
equal deleted inserted replaced
30149:c0f930abe5ed 30150:d9c940aa42ef
    70   oop protection_domain() const { return NULL; }
    70   oop protection_domain() const { return NULL; }
    71 
    71 
    72   // Copying
    72   // Copying
    73   void  copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
    73   void  copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
    74 
    74 
    75   // Iteration
    75   // GC specific object visitors
    76   int oop_oop_iterate(oop obj, ExtendedOopClosure* blk);
    76   //
    77   int oop_oop_iterate_m(oop obj, ExtendedOopClosure* blk, MemRegion mr);
    77   // Mark Sweep
       
    78   void oop_ms_follow_contents(oop obj);
       
    79   int  oop_ms_adjust_pointers(oop obj);
       
    80 #if INCLUDE_ALL_GCS
       
    81   // Parallel Scavenge
       
    82   void oop_ps_push_contents(  oop obj, PSPromotionManager* pm);
       
    83   // Parallel Compact
       
    84   void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
       
    85   void oop_pc_update_pointers(oop obj);
       
    86 #endif
    78 
    87 
    79   // Garbage collection
    88   // Oop iterators. Since there are no oops in TypeArrayKlasses,
    80   void oop_follow_contents(oop obj);
    89   // these functions only return the size of the object.
    81   int  oop_adjust_pointers(oop obj);
       
    82 
    90 
    83   // Parallel Scavenge and Parallel Old
    91  private:
    84   PARALLEL_GC_DECLS
    92   // The implementation used by all oop_oop_iterate functions in TypeArrayKlasses.
       
    93   inline int oop_oop_iterate_impl(oop obj, ExtendedOopClosure* closure);
       
    94 
       
    95  public:
       
    96 
       
    97 #define TypeArrayKlass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix)    \
       
    98   int oop_oop_iterate##nv_suffix(oop obj, OopClosureType* closure);       \
       
    99   int oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* closure,    \
       
   100                                      MemRegion mr);                       \
       
   101   int oop_oop_iterate_range##nv_suffix(oop obj, OopClosureType* closure,  \
       
   102                                      int start, int end);
       
   103 
       
   104   ALL_OOP_OOP_ITERATE_CLOSURES_1(TypeArrayKlass_OOP_OOP_ITERATE_DECL)
       
   105   ALL_OOP_OOP_ITERATE_CLOSURES_2(TypeArrayKlass_OOP_OOP_ITERATE_DECL)
       
   106 
       
   107 #if INCLUDE_ALL_GCS
       
   108 #define TypeArrayKlass_OOP_OOP_ITERATE_BACKWARDS_DECL(OopClosureType, nv_suffix)  \
       
   109   int  oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* closure);
       
   110 
       
   111   ALL_OOP_OOP_ITERATE_CLOSURES_1(TypeArrayKlass_OOP_OOP_ITERATE_BACKWARDS_DECL)
       
   112   ALL_OOP_OOP_ITERATE_CLOSURES_2(TypeArrayKlass_OOP_OOP_ITERATE_BACKWARDS_DECL)
       
   113 #endif // INCLUDE_ALL_GCS
       
   114 
    85 
   115 
    86  protected:
   116  protected:
    87   // Find n'th dimensional array
   117   // Find n'th dimensional array
    88   virtual Klass* array_klass_impl(bool or_null, int n, TRAPS);
   118   virtual Klass* array_klass_impl(bool or_null, int n, TRAPS);
    89 
   119