This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git


The following commit(s) were added to refs/heads/master by this push:
     new 3736ddc  
Lucene.Net.Highlighter.VectorHighlight.FieldPhraseList::GetHashCode(): Switched 
to using J2N's TripleShift method, as it is clear by the comment the reason for 
the problem was the cast to uint instead of ulong
3736ddc is described below

commit 3736ddcd7542c049377ef2fc3ab398bc4b23c2e0
Author: Shad Storhaug <[email protected]>
AuthorDate: Wed Feb 17 19:39:40 2021 +0700

    Lucene.Net.Highlighter.VectorHighlight.FieldPhraseList::GetHashCode(): 
Switched to using J2N's TripleShift method, as it is clear by the comment the 
reason for the problem was the cast to uint instead of ulong
---
 .../VectorHighlight/FieldPhraseList.cs                    | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/src/Lucene.Net.Highlighter/VectorHighlight/FieldPhraseList.cs 
b/src/Lucene.Net.Highlighter/VectorHighlight/FieldPhraseList.cs
index 692cd6d..e2afbce 100644
--- a/src/Lucene.Net.Highlighter/VectorHighlight/FieldPhraseList.cs
+++ b/src/Lucene.Net.Highlighter/VectorHighlight/FieldPhraseList.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Support;
+using J2N.Numerics;
+using Lucene.Net.Support;
 using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
@@ -415,20 +416,10 @@ namespace Lucene.Net.Search.VectorHighlight
                 result = prime * result + StartOffset;
                 result = prime * result + EndOffset;
                 long b = J2N.BitConversion.DoubleToInt64Bits(Boost);
-                result = prime * result + (int)(b ^ TripleShift(b, 32));
+                result = prime * result + (int)(b ^ b.TripleShift(32));
                 return result;
             }
 
-            // LUCENENET NOTE: For some reason the standard way of correcting 
the >>>
-            // operator (int)((uint)b >> 32) didn't work here. Got this 
solution from http://stackoverflow.com/a/6625912
-            // and it works just like in Java.
-            private static long TripleShift(long n, int s)
-            {
-                if (n >= 0)
-                    return n >> s;
-                return (n >> s) + (2 << ~s);
-            }
-
             public override bool Equals(object obj)
             {
                 if (this == obj)

Reply via email to