Mercurial > hg > truffle
diff agent/src/share/classes/sun/jvm/hotspot/utilities/Hashtable.java @ 17681:6037db01f9dd
8028623: SA: hash codes in SymbolTable mismatching java_lang_String::hash_code for extended characters.
Reviewed-by: sla, dsamersoff
author | kevinw |
---|---|
date | Fri, 17 Jan 2014 18:39:22 +0000 |
parents | b9a9ed0f8eeb |
children | 4ca6dc0799b6 |
line wrap: on
line diff
--- a/agent/src/share/classes/sun/jvm/hotspot/utilities/Hashtable.java Fri Feb 21 11:10:15 2014 -0800 +++ b/agent/src/share/classes/sun/jvm/hotspot/utilities/Hashtable.java Fri Jan 17 18:39:22 2014 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,8 +61,9 @@ long h = 0; int s = 0; int len = buf.length; + // Emulate the unsigned int in java_lang_String::hash_code while (len-- > 0) { - h = 31*h + (0xFFL & buf[s]); + h = 31*h + (0xFFFFFFFFL & buf[s]); s++; } return h & 0xFFFFFFFFL;