Mercurial > hg > truffle
comparison src/share/vm/memory/genMarkSweep.cpp @ 1000:a1423fe86a18
Merge
author | trims |
---|---|
date | Fri, 09 Oct 2009 15:18:52 -0700 |
parents | 89e0543e1737 54b3b351d6f9 |
children | 2a1472c30599 |
comparison
equal
deleted
inserted
replaced
984:6ddec5389232 | 1000:a1423fe86a18 |
---|---|
242 // are run. | 242 // are run. |
243 follow_root_closure.set_orig_generation(gch->get_gen(level)); | 243 follow_root_closure.set_orig_generation(gch->get_gen(level)); |
244 | 244 |
245 gch->gen_process_strong_roots(level, | 245 gch->gen_process_strong_roots(level, |
246 false, // Younger gens are not roots. | 246 false, // Younger gens are not roots. |
247 true, // activate StrongRootsScope | |
247 true, // Collecting permanent generation. | 248 true, // Collecting permanent generation. |
248 SharedHeap::SO_SystemClasses, | 249 SharedHeap::SO_SystemClasses, |
249 &follow_root_closure, &follow_root_closure); | 250 &follow_root_closure, |
251 true, // walk code active on stacks | |
252 &follow_root_closure); | |
250 | 253 |
251 // Process reference objects found during marking | 254 // Process reference objects found during marking |
252 { | 255 { |
253 ref_processor()->setup_policy(clear_all_softrefs); | 256 ref_processor()->setup_policy(clear_all_softrefs); |
254 ref_processor()->process_discovered_references( | 257 ref_processor()->process_discovered_references( |
336 adjust_root_pointer_closure.set_orig_generation(gch->get_gen(level)); | 339 adjust_root_pointer_closure.set_orig_generation(gch->get_gen(level)); |
337 adjust_pointer_closure.set_orig_generation(gch->get_gen(level)); | 340 adjust_pointer_closure.set_orig_generation(gch->get_gen(level)); |
338 | 341 |
339 gch->gen_process_strong_roots(level, | 342 gch->gen_process_strong_roots(level, |
340 false, // Younger gens are not roots. | 343 false, // Younger gens are not roots. |
344 true, // activate StrongRootsScope | |
341 true, // Collecting permanent generation. | 345 true, // Collecting permanent generation. |
342 SharedHeap::SO_AllClasses, | 346 SharedHeap::SO_AllClasses, |
343 &adjust_root_pointer_closure, | 347 &adjust_root_pointer_closure, |
348 false, // do not walk code | |
344 &adjust_root_pointer_closure); | 349 &adjust_root_pointer_closure); |
345 | 350 |
346 // Now adjust pointers in remaining weak roots. (All of which should | 351 // Now adjust pointers in remaining weak roots. (All of which should |
347 // have been cleared if they pointed to non-surviving objects.) | 352 // have been cleared if they pointed to non-surviving objects.) |
353 CodeBlobToOopClosure adjust_code_pointer_closure(&adjust_pointer_closure, | |
354 /*do_marking=*/ false); | |
348 gch->gen_process_weak_roots(&adjust_root_pointer_closure, | 355 gch->gen_process_weak_roots(&adjust_root_pointer_closure, |
356 &adjust_code_pointer_closure, | |
349 &adjust_pointer_closure); | 357 &adjust_pointer_closure); |
350 | 358 |
351 adjust_marks(); | 359 adjust_marks(); |
352 GenAdjustPointersClosure blk; | 360 GenAdjustPointersClosure blk; |
353 gch->generation_iterate(&blk, true); | 361 gch->generation_iterate(&blk, true); |