Author: manik.surtani(a)jboss.com
Date: 2008-10-03 12:38:10 -0400 (Fri, 03 Oct 2008)
New Revision: 6837
Modified:
core/trunk/src/main/java/org/jboss/cache/lock/StripedLock.java
core/trunk/src/main/java/org/jboss/cache/util/concurrent/locks/LockContainer.java
Log:
Better bit spreader
Modified: core/trunk/src/main/java/org/jboss/cache/lock/StripedLock.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/lock/StripedLock.java 2008-10-03 15:47:22 UTC
(rev 6836)
+++ core/trunk/src/main/java/org/jboss/cache/lock/StripedLock.java 2008-10-03 16:38:10 UTC
(rev 6837)
@@ -138,12 +138,9 @@
*/
final int hash(Object x)
{
- int h = x.toString().hashCode();
- h += ~(h << 9);
- h ^= (h >>> 14);
- h += (h << 4);
- h ^= (h >>> 10);
- return h;
+ int h = x.hashCode();
+ h ^= (h >>> 20) ^ (h >>> 12);
+ return h ^ (h >>> 7) ^ (h >>> 4);
}
/**
Modified:
core/trunk/src/main/java/org/jboss/cache/util/concurrent/locks/LockContainer.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/util/concurrent/locks/LockContainer.java 2008-10-03
15:47:22 UTC (rev 6836)
+++
core/trunk/src/main/java/org/jboss/cache/util/concurrent/locks/LockContainer.java 2008-10-03
16:38:10 UTC (rev 6837)
@@ -68,11 +68,8 @@
final int hash(E object)
{
int h = object.hashCode();
- h += ~(h << 9);
- h ^= (h >>> 14);
- h += (h << 4);
- h ^= (h >>> 10);
- return h;
+ h ^= (h >>> 20) ^ (h >>> 12);
+ return h ^ (h >>> 7) ^ (h >>> 4);
}
protected abstract void initLocks(int numLocks);
Show replies by thread