< 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 >