hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From szets...@apache.org
Subject git commit: HADOOP-11221. IdentityHashStore assumes System.identityHashCode() is non-negative. Contributed by Jinghui Wang
Date Thu, 30 Oct 2014 18:00:44 GMT
Repository: hadoop
Updated Branches:
  refs/heads/branch-2 fe1f4c64d -> 2b5baa671


HADOOP-11221. IdentityHashStore assumes System.identityHashCode() is non-negative. Contributed
by Jinghui Wang


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2b5baa67
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2b5baa67
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2b5baa67

Branch: refs/heads/branch-2
Commit: 2b5baa6714712fb6fac5e1a8f311c218e5e191c6
Parents: fe1f4c6
Author: Tsz-Wo Nicholas Sze <szetszwo@hortonworks.com>
Authored: Thu Oct 30 10:58:26 2014 -0700
Committer: Tsz-Wo Nicholas Sze <szetszwo@hortonworks.com>
Committed: Thu Oct 30 11:00:24 2014 -0700

----------------------------------------------------------------------
 hadoop-common-project/hadoop-common/CHANGES.txt       |  3 +++
 .../org/apache/hadoop/util/IdentityHashStore.java     | 14 ++++++++------
 2 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/2b5baa67/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt
index 0cfe217..66feb1d 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -693,6 +693,9 @@ Release 2.6.0 - UNRELEASED
     HADOOP-11250. fix endmacro of set_find_shared_library_without_version in
     CMakeLists (Yi Liu via Colin P. McCabe)
 
+    HADOOP-11221. IdentityHashStore assumes System.identityHashCode() is
+    non-negative. (Jinghui Wang via szetszwo)
+
 Release 2.5.1 - 2014-09-05
 
   INCOMPATIBLE CHANGES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/2b5baa67/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/IdentityHashStore.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/IdentityHashStore.java
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/IdentityHashStore.java
index 4209488..3ae4bba 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/IdentityHashStore.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/IdentityHashStore.java
@@ -92,9 +92,10 @@ public final class IdentityHashStore<K, V> {
   }
 
   private void putInternal(Object k, Object v) {
-    int hash = System.identityHashCode(k);
-    final int numEntries = buffer.length / 2;
-    int index = hash % numEntries;
+    final int hash = System.identityHashCode(k);
+    final int numEntries = buffer.length >>  1;
+    //computing modulo with the assumption buffer.length is power of 2
+    int index = hash & (numEntries-1);
     while (true) {
       if (buffer[2 * index] == null) {
         buffer[2 * index] = k;
@@ -127,9 +128,10 @@ public final class IdentityHashStore<K, V> {
     if (buffer == null) {
       return -1;
     }
-    final int numEntries = buffer.length / 2;
-    int hash = System.identityHashCode(k);
-    int index = hash % numEntries;
+    final int numEntries = buffer.length >> 1;
+    final int hash = System.identityHashCode(k);
+    //computing modulo with the assumption buffer.length is power of 2
+    int index = hash & (numEntries -1);
     int firstIndex = index;
     do {
       if (buffer[2 * index] == k) {


Mime
View raw message