Fwd: Re: RFR 8056084: Refactor Hashtable to allow implementations without rehashing support

Jon Masamitsu jon.masamitsu at oracle.com
Wed Aug 27 16:54:34 UTC 2014


Mikael,

Just a resend since I forgot the mailing list on my
reply.

Jon


-------- Original Message --------
Subject: 	Re: RFR 8056084: Refactor Hashtable to allow implementations 
without rehashing support
Date: 	Tue, 26 Aug 2014 13:45:14 -0700
From: 	Jon Masamitsu <jon.masamitsu at oracle.com>
To: 	Mikael Gerdin <mikael.gerdin at oracle.com>



http://cr.openjdk.java.net/~mgerdin/8048268/hashtable-refactor/webrev/src/share/vm/utilities/hashtable.cpp.frames.html

On right side

372 #endif // SOLARIS || CHECK_UNHANDLED_OOPS

to

372 #endif CHECK_UNHANDLED_OOPS


Otherwise, looks good.

Reviewed.

Jon


On 08/26/2014 08:26 AM, Mikael Gerdin wrote:
> Hi all,
>
> For JDK-8048268 I need to do some refactoring of the Hashtable class template.
>
>  From the bug description:
> In order to simplify usage of the Hashtable<T, F> class the code to perform
> rehashing of the SymbolTable and StringTable should be factored out to an
> intermediate class common to those two tables.
> Also factor out HashtableEntry freelist allocation to allow implementors an
> easier route for providing their own memory management.
>
> Introducing the new intermediary superclass requires some calls to superclass
> functions to be qualified using the "this->" syntax due to the C++ template
> name lookup rules.
>
> a comment about hashtable.cpp RehashableHashtable::dump_table:
>
> -  int bucket_bytes = (int)num_buckets * sizeof(bucket(0));
> +  int bucket_bytes = (int)num_buckets * sizeof(HashtableBucket<F>);
>
> I decided to change the sizeof to count the size of the hashtable bucket class
> instead of the HashtableEntry* returned by bucket(0), even though they may be
> of the same size currently.
>
> Note that the webrev url refers to another bug.
> Webrev: http://cr.openjdk.java.net/~mgerdin/8048268/hashtable-refactor/webrev/
> Buglink: https://bugs.openjdk.java.net/browse/JDK-8056084
>
> Testing: JPRT.
>





More information about the hotspot-dev mailing list