-
Enhancement
-
Resolution: Fixed
-
P4
-
19
-
b07
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8327472 | 17.0.12 | Richard Reingruber | P4 | Resolved | Fixed | b01 |
The fix in JDK-8279699 uses `align_up` for `end_addr`, which leads to unreserved space if the result, after align_up, is reserve_end.
(The original code on master should suffer from the same problem as well if the passed-in arg `end_addr` is `reserve_end`.)
One way to workaround the problem could be:
```
if (start_addr == end_addr) {
// empty
return false;
}
...
jbyte* end_block = block_for_addr(end_addr - 1);
for (jbyte* block = start_block; block <= end_block; block++) {
```
(The original code on master should suffer from the same problem as well if the passed-in arg `end_addr` is `reserve_end`.)
One way to workaround the problem could be:
```
if (start_addr == end_addr) {
// empty
return false;
}
...
jbyte* end_block = block_for_addr(end_addr - 1);
for (jbyte* block = start_block; block <= end_block; block++) {
```
- backported by
-
JDK-8327472 [REDO] Parallel: More precise boundary in ObjectStartArray::object_starts_in_range
- Resolved
- relates to
-
JDK-8279699 Parallel: More precise boundary in ObjectStartArray::object_starts_in_range
- Resolved
- links to
-
Commit openjdk/jdk17u-dev/dbf4a994
-
Commit openjdk/jdk/496baada
-
Review openjdk/jdk17u-dev/2226
-
Review openjdk/jdk/7111
(1 links to)