< prev index next >

src/hotspot/share/memory/iterator.hpp

Print this page

        

*** 29,39 **** #include "memory/memRegion.hpp" #include "oops/oopsHierarchy.hpp" class CodeBlob; class nmethod; ! class ReferenceProcessor; class DataLayout; class KlassClosure; class ClassLoaderData; class Symbol; --- 29,39 ---- #include "memory/memRegion.hpp" #include "oops/oopsHierarchy.hpp" class CodeBlob; class nmethod; ! class ReferenceDiscoverer; class DataLayout; class KlassClosure; class ClassLoaderData; class Symbol;
*** 58,78 **** // ExtendedOopClosure adds extra code to be run during oop iterations. // This is needed by the GC and is extracted to a separate type to not // pollute the OopClosure interface. class ExtendedOopClosure : public OopClosure { private: ! ReferenceProcessor* _ref_processor; protected: ! ExtendedOopClosure(ReferenceProcessor* rp) : _ref_processor(rp) { } ! ExtendedOopClosure() : _ref_processor(NULL) { } ~ExtendedOopClosure() { } ! void set_ref_processor_internal(ReferenceProcessor* rp) { _ref_processor = rp; } public: ! ReferenceProcessor* ref_processor() const { return _ref_processor; } // Iteration of InstanceRefKlasses differ depending on the closure, // the below enum describes the different alternatives. enum ReferenceIterationMode { DO_DISCOVERY, // Apply closure and discover references --- 58,78 ---- // ExtendedOopClosure adds extra code to be run during oop iterations. // This is needed by the GC and is extracted to a separate type to not // pollute the OopClosure interface. class ExtendedOopClosure : public OopClosure { private: ! ReferenceDiscoverer* _ref_discoverer; protected: ! ExtendedOopClosure(ReferenceDiscoverer* rd) : _ref_discoverer(rd) { } ! ExtendedOopClosure() : _ref_discoverer(NULL) { } ~ExtendedOopClosure() { } ! void set_ref_discoverer_internal(ReferenceDiscoverer* rd) { _ref_discoverer = rd; } public: ! ReferenceDiscoverer* ref_discoverer() const { return _ref_discoverer; } // Iteration of InstanceRefKlasses differ depending on the closure, // the below enum describes the different alternatives. enum ReferenceIterationMode { DO_DISCOVERY, // Apply closure and discover references
*** 163,173 **** // It's used to proxy through the metadata to the oops defined in them. class MetadataAwareOopClosure: public ExtendedOopClosure { public: MetadataAwareOopClosure() : ExtendedOopClosure() { } ! MetadataAwareOopClosure(ReferenceProcessor* rp) : ExtendedOopClosure(rp) { } bool do_metadata_nv() { return true; } virtual bool do_metadata() { return do_metadata_nv(); } void do_klass_nv(Klass* k); --- 163,173 ---- // It's used to proxy through the metadata to the oops defined in them. class MetadataAwareOopClosure: public ExtendedOopClosure { public: MetadataAwareOopClosure() : ExtendedOopClosure() { } ! MetadataAwareOopClosure(ReferenceDiscoverer* rd) : ExtendedOopClosure(rd) { } bool do_metadata_nv() { return true; } virtual bool do_metadata() { return do_metadata_nv(); } void do_klass_nv(Klass* k);
< prev index next >