equal
deleted
inserted
replaced
113 BasicOopIterateClosure(ReferenceDiscoverer* rd = NULL) : OopIterateClosure(rd) {} |
113 BasicOopIterateClosure(ReferenceDiscoverer* rd = NULL) : OopIterateClosure(rd) {} |
114 |
114 |
115 virtual bool do_metadata() { return false; } |
115 virtual bool do_metadata() { return false; } |
116 virtual void do_klass(Klass* k) { ShouldNotReachHere(); } |
116 virtual void do_klass(Klass* k) { ShouldNotReachHere(); } |
117 virtual void do_cld(ClassLoaderData* cld) { ShouldNotReachHere(); } |
117 virtual void do_cld(ClassLoaderData* cld) { ShouldNotReachHere(); } |
118 }; |
|
119 |
|
120 // Wrapper closure only used to implement oop_iterate_no_header(). |
|
121 class NoHeaderExtendedOopClosure : public BasicOopIterateClosure { |
|
122 OopClosure* _wrapped_closure; |
|
123 public: |
|
124 NoHeaderExtendedOopClosure(OopClosure* cl) : _wrapped_closure(cl) {} |
|
125 // Warning: this calls the virtual version do_oop in the the wrapped closure. |
|
126 virtual void do_oop(oop* p) { _wrapped_closure->do_oop(p); } |
|
127 virtual void do_oop(narrowOop* p) { _wrapped_closure->do_oop(p); } |
|
128 }; |
118 }; |
129 |
119 |
130 class KlassClosure : public Closure { |
120 class KlassClosure : public Closure { |
131 public: |
121 public: |
132 virtual void do_klass(Klass* k) = 0; |
122 virtual void do_klass(Klass* k) = 0; |