< prev index next >
src/hotspot/share/gc/z/zHeapIterator.hpp
Print this page
*** 30,57 ****
class ObjectClosure;
class ZHeapIteratorBitMap;
class ZHeapIterator : public StackObj {
! friend class ZHeapIteratorRootOopClosure;
! 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);
public:
! ZHeapIterator(bool visit_referents);
~ZHeapIterator();
! void objects_do(ObjectClosure* cl);
};
#endif // SHARE_GC_Z_ZHEAPITERATOR_HPP
--- 30,60 ----
class ObjectClosure;
class ZHeapIteratorBitMap;
class ZHeapIterator : public StackObj {
! 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;
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();
~ZHeapIterator();
! void objects_do(ObjectClosure* cl, bool visit_referents);
};
#endif // SHARE_GC_Z_ZHEAPITERATOR_HPP
< prev index next >