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