RFR(S) 8038405: Clean up some virtual fucntions in Space class hierarchy
Mikael Gerdin
mikael.gerdin at oracle.com
Thu Mar 27 15:18:29 UTC 2014
Hi,
On Wednesday 26 March 2014 17.22.03 Mikael Gerdin wrote:
> Hi,
>
> I'm doing some cleanups in the "Space" classes to simplify the code for the
> G1 class unloading work[1].
> This change moves around some virtual functions in Space to more (in my
> mind) sane places:
>
> * Space::is_in is implemented the same by all Space subclasses, move it to
> Space and make it non-virtual.
> * Space::used_region has a bogus implementation that is never useful, remove
> it.
> * Consolidate more code related to saved_marks in the Space base class
When making set_saved_mark non-virtual G1OffsetTableContigSpace's override of
set_saved_mark became a shadowing function instead. The code still works fine
since all calls to G1OffsetTableContigSpace::set_saved_mark are on pointers to
HeapRegion and not the base class.
To clarify that G1 uses the "saved_mark" functionality for a completely
different purpose I have renamed the G1 function to record_top_and_timestamp:
Incremental webrev: http://cr.openjdk.java.net/~mgerdin/8038405/webrev.0.to.1
Webrev: http://cr.openjdk.java.net/~mgerdin/8038405/webrev.1
/Mikael
> * Make CompactibleSpace::reset_after_compaction a pure virtual.
> * Give Space::minimum_free_block_size a default implementation since only
> CMS needs to override it.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8038405
> Webrev: http://cr.openjdk.java.net/~mgerdin/8038405/webrev.0
>
> /Mikael
>
> [1] http://openjdk.java.net/jeps/156
More information about the hotspot-gc-dev
mailing list