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

commit 4eb22840add28d0265b9274d785ee588a3c4f6d7
Author: Shad Storhaug <[email protected]>
AuthorDate: Sat Jul 18 02:29:48 2020 +0700

    PERFORMANCE: Lucene.Net.Search.NumericRangeQuery: Changed rangeBounds from 
LinkedList to Queue
---
 src/Lucene.Net/Search/NumericRangeQuery.cs | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/src/Lucene.Net/Search/NumericRangeQuery.cs 
b/src/Lucene.Net/Search/NumericRangeQuery.cs
index a91cab6..aeef50b 100644
--- a/src/Lucene.Net/Search/NumericRangeQuery.cs
+++ b/src/Lucene.Net/Search/NumericRangeQuery.cs
@@ -300,7 +300,7 @@ namespace Lucene.Net.Search
 
             internal BytesRef currentLowerBound, currentUpperBound;
 
-            internal readonly LinkedList<BytesRef> rangeBounds = new 
LinkedList<BytesRef>();
+            internal readonly Queue<BytesRef> rangeBounds = new 
Queue<BytesRef>();
             internal readonly IComparer<BytesRef> termComp;
 
             internal NumericRangeTermsEnum(NumericRangeQuery<T> outerInstance, 
TermsEnum tenum)
@@ -422,8 +422,8 @@ namespace Lucene.Net.Search
 
                 public override sealed void AddRange(BytesRef minPrefixCoded, 
BytesRef maxPrefixCoded)
                 {
-                    outerInstance.rangeBounds.AddLast(minPrefixCoded);
-                    outerInstance.rangeBounds.AddLast(maxPrefixCoded);
+                    outerInstance.rangeBounds.Enqueue(minPrefixCoded);
+                    outerInstance.rangeBounds.Enqueue(maxPrefixCoded);
                 }
             }
 
@@ -438,8 +438,8 @@ namespace Lucene.Net.Search
 
                 public override sealed void AddRange(BytesRef minPrefixCoded, 
BytesRef maxPrefixCoded)
                 {
-                    outerInstance.rangeBounds.AddLast(minPrefixCoded);
-                    outerInstance.rangeBounds.AddLast(maxPrefixCoded);
+                    outerInstance.rangeBounds.Enqueue(minPrefixCoded);
+                    outerInstance.rangeBounds.Enqueue(maxPrefixCoded);
                 }
             }
 
@@ -447,12 +447,10 @@ namespace Lucene.Net.Search
             {
                 Debug.Assert(rangeBounds.Count % 2 == 0);
 
-                currentLowerBound = rangeBounds.First.Value;
-                rangeBounds.Remove(currentLowerBound);
+                currentLowerBound = rangeBounds.Dequeue();
                 Debug.Assert(currentUpperBound == null || 
termComp.Compare(currentUpperBound, currentLowerBound) <= 0, "The current upper 
bound must be <= the new lower bound");
 
-                currentUpperBound = rangeBounds.First.Value;
-                rangeBounds.Remove(currentUpperBound);
+                currentUpperBound = rangeBounds.Dequeue();
             }
 
             protected override sealed BytesRef NextSeekTerm(BytesRef term)
@@ -485,7 +483,7 @@ namespace Lucene.Net.Search
                         return AcceptStatus.END;
                     }
                     // peek next sub-range, only seek if the current term is 
smaller than next lower bound
-                    if (termComp.Compare(term, rangeBounds.First.Value) < 0)
+                    if (termComp.Compare(term, rangeBounds.Peek()) < 0)
                     {
                         return AcceptStatus.NO_AND_SEEK;
                     }

Reply via email to