Lucene.Net.Core.Search.BooleanQuery: Changed GetHashCode() logic back to 
original from Lucene.


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/9ada11a8
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/9ada11a8
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/9ada11a8

Branch: refs/heads/api-work
Commit: 9ada11a80c7fda2589d390d3c9f3702f82e5b27a
Parents: f6c6f8a
Author: Shad Storhaug <[email protected]>
Authored: Sat Mar 4 04:27:45 2017 +0700
Committer: Shad Storhaug <[email protected]>
Committed: Sun Mar 5 17:08:42 2017 +0700

----------------------------------------------------------------------
 src/Lucene.Net.Core/Search/BooleanQuery.cs | 11 ++++++-----
 src/Lucene.Net.Core/Support/ValueList.cs   |  5 +++++
 2 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/9ada11a8/src/Lucene.Net.Core/Search/BooleanQuery.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Search/BooleanQuery.cs 
b/src/Lucene.Net.Core/Search/BooleanQuery.cs
index da596e5..cc8781f 100644
--- a/src/Lucene.Net.Core/Search/BooleanQuery.cs
+++ b/src/Lucene.Net.Core/Search/BooleanQuery.cs
@@ -80,7 +80,7 @@ namespace Lucene.Net.Search
             }
         }
 
-        private EquatableList<BooleanClause> clauses = new 
EquatableList<BooleanClause>();
+        private ValueList<BooleanClause> clauses = new 
ValueList<BooleanClause>();
         private readonly bool disableCoord;
 
         /// <summary>
@@ -585,7 +585,7 @@ namespace Lucene.Net.Search
         public override object Clone()
         {
             BooleanQuery clone = (BooleanQuery)base.Clone();
-            clone.clauses = (EquatableList<BooleanClause>)this.clauses.Clone();
+            clone.clauses = (ValueList<BooleanClause>)this.clauses.Clone();
             return clone;
         }
 
@@ -666,16 +666,17 @@ namespace Lucene.Net.Search
             }
             BooleanQuery other = (BooleanQuery)o;
             return this.Boost == other.Boost 
-                && this.clauses.SequenceEqual(other.clauses) 
+                && this.clauses.Equals(other.clauses) 
                 && this.MinimumNumberShouldMatch == 
other.MinimumNumberShouldMatch 
                 && this.disableCoord == other.disableCoord;
         }
 
         /// <summary>
         /// Returns a hash code value for this object. </summary>
-        public override int GetHashCode() // LUCENENET TODO: Fix hashcode 
logic.
+        public override int GetHashCode()
         {
-            return Number.SingleToInt32Bits(Boost) ^ (clauses.Count == 0 ? 0 : 
HashHelpers.CombineHashCodes(clauses.First().GetHashCode(), 
clauses.Last().GetHashCode(), clauses.Count)) + MinimumNumberShouldMatch + 
(disableCoord ? 17 : 0);
+            return Number.SingleToInt32Bits(Boost) ^ clauses.GetHashCode()
+                + MinimumNumberShouldMatch + (disableCoord ? 17 : 0);
         }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/9ada11a8/src/Lucene.Net.Core/Support/ValueList.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Support/ValueList.cs 
b/src/Lucene.Net.Core/Support/ValueList.cs
index 00629a8..d09874e 100644
--- a/src/Lucene.Net.Core/Support/ValueList.cs
+++ b/src/Lucene.Net.Core/Support/ValueList.cs
@@ -28,6 +28,11 @@ namespace Lucene.Net.Support
             : base(collection)
         { }
 
+        public object Clone()
+        {
+            return new ValueList<T>(this);
+        }
+
         public override bool Equals(object obj)
         {
             if (obj == this)

Reply via email to