提交 8bbfe8dd 编写于 作者: T tonyp

7003860: G1: assert(_cur_alloc_region == NULL || !expect_null_cur_alloc_region) fails

Summary: Wrong assumption about expecting the current alloc region expected to be NULL in expand_and_allocate().
Reviewed-by: brutisso, ysr
上级 064ea6ca
...@@ -920,8 +920,10 @@ HeapWord* G1CollectedHeap::attempt_allocation_at_safepoint(size_t word_size, ...@@ -920,8 +920,10 @@ HeapWord* G1CollectedHeap::attempt_allocation_at_safepoint(size_t word_size,
bool expect_null_cur_alloc_region) { bool expect_null_cur_alloc_region) {
assert_at_safepoint(); assert_at_safepoint();
assert(_cur_alloc_region == NULL || !expect_null_cur_alloc_region, assert(_cur_alloc_region == NULL || !expect_null_cur_alloc_region,
"The current alloc region should only be non-NULL if we're " err_msg("the current alloc region was unexpectedly found "
"expecting it not to be NULL"); "to be non-NULL, cur alloc region: "PTR_FORMAT" "
"expect_null_cur_alloc_region: %d word_size: "SIZE_FORMAT,
_cur_alloc_region, expect_null_cur_alloc_region, word_size));
if (!isHumongous(word_size)) { if (!isHumongous(word_size)) {
if (!expect_null_cur_alloc_region) { if (!expect_null_cur_alloc_region) {
...@@ -1597,7 +1599,7 @@ HeapWord* G1CollectedHeap::expand_and_allocate(size_t word_size) { ...@@ -1597,7 +1599,7 @@ HeapWord* G1CollectedHeap::expand_and_allocate(size_t word_size) {
assert(regions_accounted_for(), "Region leakage!"); assert(regions_accounted_for(), "Region leakage!");
return attempt_allocation_at_safepoint(word_size, return attempt_allocation_at_safepoint(word_size,
true /* expect_null_cur_alloc_region */); false /* expect_null_cur_alloc_region */);
} }
size_t G1CollectedHeap::free_region_if_totally_empty(HeapRegion* hr) { size_t G1CollectedHeap::free_region_if_totally_empty(HeapRegion* hr) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
新手
引导
客服 返回
顶部