< prev index next >
src/hotspot/share/gc/z/zHeapIterator.hpp
Print this page
@@ -30,28 +30,31 @@
class ObjectClosure;
class ZHeapIteratorBitMap;
class ZHeapIterator : public StackObj {
- friend class ZHeapIteratorRootOopClosure;
- friend class ZHeapIteratorOopClosure;
+ template<bool Concurrent, bool Weak> friend class ZHeapIteratorRootOopClosure;
+ template<bool VisitReferents> friend class ZHeapIteratorOopClosure;
private:
typedef ZGranuleMap<ZHeapIteratorBitMap*> ZVisitMap;
typedef ZGranuleMapIterator<ZHeapIteratorBitMap*> ZVisitMapIterator;
typedef Stack<oop, mtGC> ZVisitStack;
ZVisitStack _visit_stack;
ZVisitMap _visit_map;
- const bool _visit_referents;
ZHeapIteratorBitMap* object_map(oop obj);
void push(oop obj);
+ template <typename RootsIterator, bool Concurrent, bool Weak> void push_roots();
+ template <bool VisitReferents> void push_fields(oop obj);
+ template <bool VisitReferents> void objects_do(ObjectClosure* cl);
+
public:
- ZHeapIterator(bool visit_referents);
+ ZHeapIterator();
~ZHeapIterator();
- void objects_do(ObjectClosure* cl);
+ void objects_do(ObjectClosure* cl, bool visit_referents);
};
#endif // SHARE_GC_Z_ZHEAPITERATOR_HPP
< prev index next >