RFR: 8219817: Remove unused CollectedHeap::block_size()
Aleksey Shipilev
shade at redhat.com
Wed Feb 27 10:29:26 UTC 2019
On 2/27/19 9:47 AM, Per Liden wrote:
> CollectedHeap::block_size() is never called. We should remove it and the implementations provided by
> the different collectors.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8219817
> Webrev: http://cr.openjdk.java.net/~pliden/8219817/webrev.0
Code change looks fine to me.
There are comments in collectedHeap.hpp and g1CollectedHeap.hpp that sill mention block size:
1176 // one block. The defining characteristic of a block is that it is
1177 // possible to find its size, and thus to progress forward to the next
1178 // block. (Blocks may be of different sizes.) Thus, blocks may
Aside, I wonder why block_* facility is even there. It seems to have the only use here:
oop oopDesc::oop_or_null(address addr) {
if (is_valid(oop(addr))) {
// We were just given an oop directly.
return oop(addr);
}
// Try to find addr using block_start.
HeapWord* p = Universe::heap()->block_start(addr);
if (p != NULL && Universe::heap()->block_is_obj(p)) {
if (!is_valid(oop(p))) return NULL;
return oop(p);
}
// If we can't find it it just may mean that heap wasn't parsable.
return NULL;
}
...so I wonder if we should just purge this use of CollectedHeap::block_* by returning NULL when
addr does not hit the exact object, and then purge all relevant members from CollectedHeap?
-Aleksey
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20190227/2d6e8740/signature.asc>
More information about the hotspot-gc-dev
mailing list