comparison src/share/vm/oops/constantPoolKlass.cpp @ 2427:a0de1dfd1933

7030435: Some oop_oop_iterate_m() methods iterate outside of specified memory bounds Summary: Filter ref-containing locations through the memory-interval specified in the call. Reviewed-by: jcoomes, jwilhelm, tonyp
author ysr
date Thu, 24 Mar 2011 15:45:27 -0700
parents b099aaf51bf8
children 4f978fb6c81a
comparison
equal deleted inserted replaced
2380:32f7097f9d8f 2427:a0de1dfd1933
243 base++; 243 base++;
244 } 244 }
245 } 245 }
246 oop* addr; 246 oop* addr;
247 addr = cp->tags_addr(); 247 addr = cp->tags_addr();
248 blk->do_oop(addr); 248 if (mr.contains(addr)) blk->do_oop(addr);
249 addr = cp->cache_addr(); 249 addr = cp->cache_addr();
250 blk->do_oop(addr); 250 if (mr.contains(addr)) blk->do_oop(addr);
251 addr = cp->operands_addr(); 251 addr = cp->operands_addr();
252 blk->do_oop(addr); 252 if (mr.contains(addr)) blk->do_oop(addr);
253 addr = cp->pool_holder_addr(); 253 addr = cp->pool_holder_addr();
254 blk->do_oop(addr); 254 if (mr.contains(addr)) blk->do_oop(addr);
255 return size; 255 return size;
256 } 256 }
257 257
258 bool constantPoolKlass::oop_is_conc_safe(oop obj) const { 258 bool constantPoolKlass::oop_is_conc_safe(oop obj) const {
259 assert(obj->is_constantPool(), "must be constantPool"); 259 assert(obj->is_constantPool(), "must be constantPool");