summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDinnerbone <dinnerbone@dinnerbone.com>2011-02-19 23:11:56 +0000
committerDinnerbone <dinnerbone@dinnerbone.com>2011-02-19 23:11:56 +0000
commite5db7961889074f6d9d0693f26b9589eed640850 (patch)
tree16d2383ee4bc71214a9c9918f9bcf4140c226415 /src
parent3f971e42eb384fc3a67d7abf10d7b5f9e86bd51a (diff)
downloadbukkit-e5db7961889074f6d9d0693f26b9589eed640850.tar
bukkit-e5db7961889074f6d9d0693f26b9589eed640850.tar.gz
bukkit-e5db7961889074f6d9d0693f26b9589eed640850.tar.lz
bukkit-e5db7961889074f6d9d0693f26b9589eed640850.tar.xz
bukkit-e5db7961889074f6d9d0693f26b9589eed640850.zip
Replaced Vector.hashCode with a more reliable method
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/bukkit/util/Vector.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/main/java/org/bukkit/util/Vector.java b/src/main/java/org/bukkit/util/Vector.java
index 8a44c17d..d018a066 100644
--- a/src/main/java/org/bukkit/util/Vector.java
+++ b/src/main/java/org/bukkit/util/Vector.java
@@ -526,16 +526,17 @@ public class Vector implements Cloneable {
}
/**
- * Returns a hash code for this vector. Due to floating point errors, this
- * hash code should not be used in hash tables of any sort.
+ * Returns a hash code for this vector
*
* @return hash code
*/
@Override
public int hashCode() {
- return ((int)Double.doubleToLongBits(x) >> 13) ^
- ((int)Double.doubleToLongBits(y) >> 7) ^
- (int)Double.doubleToLongBits(z);
+ int hash = 7;
+ hash = 79 * hash + (int) (Double.doubleToLongBits(this.x) ^ (Double.doubleToLongBits(this.x) >>> 32));
+ hash = 79 * hash + (int) (Double.doubleToLongBits(this.y) ^ (Double.doubleToLongBits(this.y) >>> 32));
+ hash = 79 * hash + (int) (Double.doubleToLongBits(this.z) ^ (Double.doubleToLongBits(this.z) >>> 32));
+ return hash;
}
/**