Mercurial > hg > graal-compiler
comparison src/share/vm/memory/iterator.hpp @ 7179:d0aa87f04bd5
8003720: NPG: Method in interpreter stack frame can be deallocated
Summary: Pass down a closure during root scanning to keep the class of the method alive.
Reviewed-by: coleenp, jcoomes
author | stefank |
---|---|
date | Tue, 27 Nov 2012 10:13:20 +0100 |
parents | ec98e58952b2 |
children | 001ec9515f84 |
comparison
equal
deleted
inserted
replaced
7178:19c1bd641922 | 7179:d0aa87f04bd5 |
---|---|
133 public: | 133 public: |
134 KlassToOopClosure(OopClosure* oop_closure) : _oop_closure(oop_closure) {} | 134 KlassToOopClosure(OopClosure* oop_closure) : _oop_closure(oop_closure) {} |
135 virtual void do_klass(Klass* k); | 135 virtual void do_klass(Klass* k); |
136 }; | 136 }; |
137 | 137 |
138 class CLDToOopClosure { | |
139 OopClosure* _oop_closure; | |
140 KlassToOopClosure _klass_closure; | |
141 bool _must_claim_cld; | |
142 | |
143 public: | |
144 CLDToOopClosure(OopClosure* oop_closure, bool must_claim_cld = true) : | |
145 _oop_closure(oop_closure), | |
146 _klass_closure(oop_closure), | |
147 _must_claim_cld(must_claim_cld) {} | |
148 | |
149 void do_cld(ClassLoaderData* cld); | |
150 }; | |
151 | |
138 // ObjectClosure is used for iterating through an object space | 152 // ObjectClosure is used for iterating through an object space |
139 | 153 |
140 class ObjectClosure : public Closure { | 154 class ObjectClosure : public Closure { |
141 public: | 155 public: |
142 // Called for each object. | 156 // Called for each object. |