comparison src/share/vm/memory/iterator.cpp @ 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 5888334c9c24
comparison
equal deleted inserted replaced
7178:19c1bd641922 7179:d0aa87f04bd5
26 #include "memory/iterator.hpp" 26 #include "memory/iterator.hpp"
27 #include "oops/oop.inline.hpp" 27 #include "oops/oop.inline.hpp"
28 28
29 void KlassToOopClosure::do_klass(Klass* k) { 29 void KlassToOopClosure::do_klass(Klass* k) {
30 k->oops_do(_oop_closure); 30 k->oops_do(_oop_closure);
31 }
32
33 void CLDToOopClosure::do_cld(ClassLoaderData* cld) {
34 cld->oops_do(_oop_closure, &_klass_closure, _must_claim_cld);
31 } 35 }
32 36
33 void ObjectToOopClosure::do_object(oop obj) { 37 void ObjectToOopClosure::do_object(oop obj) {
34 obj->oop_iterate(_cl); 38 obj->oop_iterate(_cl);
35 } 39 }