comparison src/share/vm/oops/constantPoolKlass.cpp @ 1706:9d7a8ab3736b

6962589: remove breadth first scanning code from parallel gc Summary: Remove the breadth-first copying order from ParallelScavenge and use depth-first by default. Reviewed-by: jcoomes, ysr, johnc
author tonyp
date Thu, 22 Jul 2010 10:27:41 -0400
parents 083fde3b838e
children 7fcd5f39bd7a
comparison
equal deleted inserted replaced
1705:2d160770d2e5 1706:9d7a8ab3736b
266 PSParallelCompact::adjust_pointer(p, beg_addr, end_addr); 266 PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
267 267
268 return cp->object_size(); 268 return cp->object_size();
269 } 269 }
270 270
271 void constantPoolKlass::oop_copy_contents(PSPromotionManager* pm, oop obj) {
272 assert(obj->is_constantPool(), "should be constant pool");
273 constantPoolOop cp = (constantPoolOop) obj;
274 if (AnonymousClasses && cp->has_pseudo_string() && cp->tags() != NULL) {
275 oop* base = (oop*)cp->base();
276 for (int i = 0; i < cp->length(); ++i, ++base) {
277 if (cp->tag_at(i).is_string()) {
278 if (PSScavenge::should_scavenge(base)) {
279 pm->claim_or_forward_breadth(base);
280 }
281 }
282 }
283 }
284 }
285
286 void constantPoolKlass::oop_push_contents(PSPromotionManager* pm, oop obj) { 271 void constantPoolKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
287 assert(obj->is_constantPool(), "should be constant pool"); 272 assert(obj->is_constantPool(), "should be constant pool");
288 constantPoolOop cp = (constantPoolOop) obj; 273 constantPoolOop cp = (constantPoolOop) obj;
289 if (AnonymousClasses && cp->has_pseudo_string() && cp->tags() != NULL) { 274 if (AnonymousClasses && cp->has_pseudo_string() && cp->tags() != NULL) {
290 oop* base = (oop*)cp->base(); 275 oop* base = (oop*)cp->base();