RFR 8055283: Expand ResourceHashtable with C_HEAP allocation, removal and some unit tests

Mikael Gerdin mikael.gerdin at oracle.com
Mon Aug 18 14:24:28 UTC 2014


Hi all!

For an upcoming change I need to allocate ResourceHashtables as c-heap 
objects instead of arena objects. Since the ResourceObj allocation type 
typically supports c-heap allocation I extended ResourceHashtable with 
the functionality.
I also need a remove method and a size estimate, added those as well.

Additionally, I took the liberty to fix the default hash function which 
appears to be a typo:
return hash ^ (hash > 3);
  // just in case we're dealing with aligned ptrs

I don't think the intention was to xor with "true" if hash was greater 
than 3, especially given the comment about aligned ptrs.

I assume that the original author meant to shift hash to the right since 
aligned pointers will have a bunch of zeros in the low bits.

I also took the liberty to add some simple unit tests to the class to 
avoid breaking something.

Testing: JPRT (including the new unit test) and vm.defmeth.testlist 
(since default methods seems to be the only user of the default hash 
function)

Bug: https://bugs.openjdk.java.net/browse/JDK-8055283

Webrev: http://cr.openjdk.java.net/~mgerdin/8055283/webrev.0

/Mikael


More information about the hotspot-dev mailing list