FRF: 8033792: AltHashing used jint for imprecise bit shifting
David Holmes
david.holmes at oracle.com
Thu Feb 6 23:47:59 PST 2014
Hi Yumin,
On 7/02/2014 2:14 PM, Yumin Qi wrote:
> Hi,
>
> Please review the change for 8033792.
>
> Summary: AltHashing uses 'jint' type in the way as 'unsigned int' in
> bit shifting, which is imprecise. This could lead loss of precision
> when converted between jint and 'unsigned int' during bit operation. Fix
> by changing operation variable type from 'jint' to 'juint', before
> return, cast it into type 'jint'.
>
> http://cr.openjdk.java.net/~minqi/8033792/webrev00/
I don't see how casting to unsigned int can lead to a loss of precision
here. Further you now assign h1 from a jint and you pass it as a jint
parameter to the Integer_rotate functions which would seem to me to have
more opportunity for conversion issues. Either way this code is
completely confused about the type of arithmetic it is trying to do (and
I would think a hash should be unsigned to begin with ??).
You didn't mention the unrelated change in
src/share/vm/oops/instanceKlass.hpp
Thanks,
David
> Thanks
> Yumin
More information about the hotspot-runtime-dev
mailing list