< prev index next >
src/hotspot/share/gc/shared/objectMarker.hpp
Print this page
*** 33,55 ****
// heap.
class ObjectMarker : public CHeapObj<mtInternal> {
protected:
bool _needs_reset;
public:
! virtual bool init() = 0; // initialize
! virtual void done() = 0; // clean-up
// mark an object if not yet marked.
// return true if the oop is marked by this call
virtual bool mark(oop o) = 0;
! virtual bool visited(oop o) = 0; // check if object has been visited
bool needs_reset() const { return _needs_reset; }
void set_needs_reset(bool v) { _needs_reset = v; }
};
! // ObjectMarker provides the mark and visited functions
class DefaultObjectMarker : public ObjectMarker {
private:
// saved headers
GrowableArray<oop>* _saved_oop_stack;
GrowableArray<markWord>* _saved_mark_stack;
--- 33,58 ----
// heap.
class ObjectMarker : public CHeapObj<mtInternal> {
protected:
bool _needs_reset;
public:
! // initialize
! virtual bool init() = 0;
! // clean-up
! virtual void done() = 0;
// mark an object if not yet marked.
// return true if the oop is marked by this call
virtual bool mark(oop o) = 0;
! // check if the object has been
! virtual bool marked(oop o) = 0;
bool needs_reset() const { return _needs_reset; }
void set_needs_reset(bool v) { _needs_reset = v; }
};
! // Default implementation
class DefaultObjectMarker : public ObjectMarker {
private:
// saved headers
GrowableArray<oop>* _saved_oop_stack;
GrowableArray<markWord>* _saved_mark_stack;
*** 58,66 ****
DefaultObjectMarker();
bool init();
void done();
bool mark(oop o);
! bool visited(oop o);
};
#endif // SHARE_GC_SHARED_OBJECTMARKER_HPP
--- 61,69 ----
DefaultObjectMarker();
bool init();
void done();
bool mark(oop o);
! bool marked(oop o);
};
#endif // SHARE_GC_SHARED_OBJECTMARKER_HPP
< prev index next >