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