Skip to content

Commit c12c948

Browse files
committed
Do not use rangeHash when rangeDiff is 0
1 parent 03b265b commit c12c948

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

library/src/scala/util/hashing/MurmurHash3.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ private[hashing] class MurmurHash3 {
136136
while (it.hasNext) {
137137
h = mix(h, prev)
138138
val hash = it.next().##
139-
if(rangeDiff != hash - prev) {
139+
if(rangeDiff != hash - prev || rangeDiff == 0) {
140140
h = mix(h, hash)
141141
i += 1
142142
while (it.hasNext) {
@@ -173,7 +173,7 @@ private[hashing] class MurmurHash3 {
173173
while (i < l) {
174174
h = mix(h, prev)
175175
val hash = a(i).##
176-
if(rangeDiff != hash - prev) {
176+
if(rangeDiff != hash - prev || rangeDiff == 0) {
177177
h = mix(h, hash)
178178
i += 1
179179
while (i < l) {
@@ -252,7 +252,7 @@ private[hashing] class MurmurHash3 {
252252
while (i < l) {
253253
h = mix(h, prev)
254254
val hash = a(i).##
255-
if(rangeDiff != hash - prev) {
255+
if(rangeDiff != hash - prev || rangeDiff == 0) {
256256
h = mix(h, hash)
257257
i += 1
258258
while (i < l) {
@@ -292,7 +292,7 @@ private[hashing] class MurmurHash3 {
292292
rangeDiff = hash - prev
293293
rangeState = 2
294294
case 2 =>
295-
if(rangeDiff != hash - prev) rangeState = 3
295+
if(rangeDiff != hash - prev || rangeDiff == 0) rangeState = 3
296296
case _ =>
297297
}
298298
prev = hash

0 commit comments

Comments
 (0)