Mercurial > hg > truffle
comparison src/share/vm/oops/symbol.cpp @ 17709:f9e35a9dc8c7
8033792: AltHashing used jint for imprecise bit shifting
Summary: AltHashing used jint the way of juint in bit shifting which could lead loss of precision. Fix by change _seed defined as juint.
Reviewed-by: coleenp, ccheung
Contributed-by: yumin.qi@oracle.com
author | minqi |
---|---|
date | Mon, 10 Feb 2014 21:29:14 -0800 |
parents | 9758d9f36299 |
children | 4ca6dc0799b6 |
comparison
equal
deleted
inserted
replaced
17707:7d28f4e15b61 | 17709:f9e35a9dc8c7 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
205 } | 205 } |
206 return str; | 206 return str; |
207 } | 207 } |
208 | 208 |
209 // Alternate hashing for unbalanced symbol tables. | 209 // Alternate hashing for unbalanced symbol tables. |
210 unsigned int Symbol::new_hash(jint seed) { | 210 unsigned int Symbol::new_hash(juint seed) { |
211 ResourceMark rm; | 211 ResourceMark rm; |
212 // Use alternate hashing algorithm on this symbol. | 212 // Use alternate hashing algorithm on this symbol. |
213 return AltHashing::murmur3_32(seed, (const jbyte*)as_C_string(), utf8_length()); | 213 return AltHashing::murmur3_32(seed, (const jbyte*)as_C_string(), utf8_length()); |
214 } | 214 } |
215 | 215 |