diff options
author | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-02-19 23:11:56 +0000 |
---|---|---|
committer | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-02-19 23:11:56 +0000 |
commit | e5db7961889074f6d9d0693f26b9589eed640850 (patch) | |
tree | 16d2383ee4bc71214a9c9918f9bcf4140c226415 /src | |
parent | 3f971e42eb384fc3a67d7abf10d7b5f9e86bd51a (diff) | |
download | bukkit-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.java | 11 |
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; } /** |