src/share/vm/oops/typeArrayKlass.hpp

Print this page
rev 6796 : [mq]: templateOopIterate
rev 6799 : [mq]: latestChanges

@@ -38,11 +38,11 @@
 
   // Constructor
   TypeArrayKlass(BasicType type, Symbol* name);
   static TypeArrayKlass* allocate(ClassLoaderData* loader_data, BasicType type, Symbol* name, TRAPS);
  public:
-  TypeArrayKlass() {} // For dummy objects.
+  TypeArrayKlass() : ArrayKlass(_type_array) {} // For dummy objects.
 
   // instance variables
   jint max_length()                     { return _max_length; }
   void set_max_length(jint m)           { _max_length = m;    }
 

@@ -71,12 +71,18 @@
 
   // Copying
   void  copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
 
   // Iteration
-  int oop_oop_iterate(oop obj, ExtendedOopClosure* blk);
-  int oop_oop_iterate_m(oop obj, ExtendedOopClosure* blk, MemRegion mr);
+  template <bool nv, typename OopClosureType>
+  int oop_oop_iterate(oop obj, OopClosureType* blk);
+
+  template <bool nv, typename OopClosureType>
+  int oop_oop_iterate_m(oop obj, OopClosureType* blk, MemRegion mr);
+
+  template <bool nv, typename OopClosureType>
+  int oop_oop_iterate_backwards(oop obj, OopClosureType* blk);
 
   // Garbage collection
   void oop_follow_contents(oop obj);
   int  oop_adjust_pointers(oop obj);