src/share/vm/oops/objArrayKlass.hpp
Print this page
rev 6796 : [mq]: templateOopIterate
rev 6799 : [mq]: latestChanges
rev 6800 : [mq]: replaceTemplateDispatchWithMacroDispatch
@@ -41,11 +41,11 @@
// Constructor
ObjArrayKlass(int n, KlassHandle element_klass, Symbol* name);
static ObjArrayKlass* allocate(ClassLoaderData* loader_data, int n, KlassHandle klass_handle, Symbol* name, TRAPS);
public:
// For dummy objects
- ObjArrayKlass() {}
+ ObjArrayKlass() : ArrayKlass(_obj_array) {}
// Instance variables
Klass* element_klass() const { return _element_klass; }
void set_element_klass(Klass* k) { _element_klass = k; }
Klass** element_klass_addr() { return &_element_klass; }
@@ -116,26 +116,21 @@
inline void oop_follow_contents(ParCompactionManager* cm, oop obj, int index);
template <class T> inline void
objarray_follow_contents(ParCompactionManager* cm, oop obj, int index);
#endif // INCLUDE_ALL_GCS
- // Iterators
- int oop_oop_iterate(oop obj, ExtendedOopClosure* blk) {
- return oop_oop_iterate_v(obj, blk);
- }
- int oop_oop_iterate_m(oop obj, ExtendedOopClosure* blk, MemRegion mr) {
- return oop_oop_iterate_v_m(obj, blk, mr);
- }
-#define ObjArrayKlass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix) \
- int oop_oop_iterate##nv_suffix(oop obj, OopClosureType* blk); \
- int oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* blk, \
- MemRegion mr); \
- int oop_oop_iterate_range##nv_suffix(oop obj, OopClosureType* blk, \
- int start, int end);
+ template <bool nv, typename OopClosureType>
+ int oop_oop_iterate(oop obj, OopClosureType* closure);
+
+ 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);
- ALL_OOP_OOP_ITERATE_CLOSURES_1(ObjArrayKlass_OOP_OOP_ITERATE_DECL)
- ALL_OOP_OOP_ITERATE_CLOSURES_2(ObjArrayKlass_OOP_OOP_ITERATE_DECL)
+ template <bool nv, typename OopClosureType>
+ int oop_oop_iterate_range_t(oop obj, OopClosureType* blk, int start, int end);
// JVM support
jint compute_modifier_flags(TRAPS) const;
public: