提交 6a8c2c8b 编写于 作者: Y ysr

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
上级 ebf8210e
......@@ -245,13 +245,13 @@ int constantPoolKlass::oop_oop_iterate_m(oop obj, OopClosure* blk, MemRegion mr)
}
oop* addr;
addr = cp->tags_addr();
blk->do_oop(addr);
if (mr.contains(addr)) blk->do_oop(addr);
addr = cp->cache_addr();
blk->do_oop(addr);
if (mr.contains(addr)) blk->do_oop(addr);
addr = cp->operands_addr();
blk->do_oop(addr);
if (mr.contains(addr)) blk->do_oop(addr);
addr = cp->pool_holder_addr();
blk->do_oop(addr);
if (mr.contains(addr)) blk->do_oop(addr);
return size;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册