mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 19:44:41 +02:00
8031686: G1: assert(_hrs.max_length() == _expansion_regions) failed
Using pointer_delta to avoid overflowing pointer calculation. Reviewed-by: jmasa, tschatzl
This commit is contained in:
parent
9b29efeb63
commit
a23ee6de8d
2 changed files with 63 additions and 1 deletions
|
@ -79,7 +79,7 @@ protected:
|
|||
assert((uintptr_t)end % mapping_granularity_in_bytes == 0,
|
||||
err_msg("end mapping area address must be a multiple of mapping granularity %zd, is "PTR_FORMAT,
|
||||
mapping_granularity_in_bytes, end));
|
||||
size_t num_target_elems = (end - bottom) / (mapping_granularity_in_bytes / HeapWordSize);
|
||||
size_t num_target_elems = pointer_delta(end, bottom, mapping_granularity_in_bytes);
|
||||
idx_t bias = (uintptr_t)bottom / mapping_granularity_in_bytes;
|
||||
address base = create_new_base_array(num_target_elems, target_elem_size_in_bytes);
|
||||
initialize_base(base, num_target_elems, bias, target_elem_size_in_bytes, log2_intptr(mapping_granularity_in_bytes));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue