You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2022/11/21 05:03:06 UTC

[lucenenet] 05/05: SWEEP: Reviewed to ensure we are consistently using Arrays.Fill() instead of the (slower) Array.Clear() method or a for loop (ouch).

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 1a05007ed7d01596629720fbe5473fb123b242f1
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Mon Nov 21 10:35:42 2022 +0700

    SWEEP: Reviewed to ensure we are consistently using Arrays.Fill() instead of the (slower) Array.Clear() method or a for loop (ouch).
---
 src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs | 4 ++--
 src/Lucene.Net/Codecs/Lucene40/BitVector.cs                  | 5 +----
 src/Lucene.Net/Codecs/MultiLevelSkipListReader.cs            | 6 +++---
 src/Lucene.Net/Util/BytesRefArray.cs                         | 3 ++-
 src/Lucene.Net/Util/RamUsageEstimator.cs                     | 4 ++--
 src/Lucene.Net/Util/TimSorter.cs                             | 3 ++-
 6 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs
index 487e52e4c..f4e42924a 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs
@@ -350,8 +350,8 @@ namespace Lucene.Net.Analysis.Util
         {
             version++;
             count = 0;
-            keys.Fill(null);
-            values.Fill(null);
+            Arrays.Fill(keys, null);
+            Arrays.Fill(values, null);
         }
 
         /// <summary>
diff --git a/src/Lucene.Net/Codecs/Lucene40/BitVector.cs b/src/Lucene.Net/Codecs/Lucene40/BitVector.cs
index cfe4662fc..94dbe4fff 100644
--- a/src/Lucene.Net/Codecs/Lucene40/BitVector.cs
+++ b/src/Lucene.Net/Codecs/Lucene40/BitVector.cs
@@ -521,10 +521,7 @@ namespace Lucene.Net.Codecs.Lucene40
             size = input.ReadInt32(); // (re)read size
             count = input.ReadInt32(); // read count
             bits = new byte[GetNumBytes(size)]; // allocate bits
-            for (int i = 0; i < bits.Length; ++i)
-            {
-                bits[i] = 0xff;
-            }
+            Arrays.Fill(bits, (byte)0xff);
             ClearUnusedBits();
             int last = 0;
             int numCleared = Length - Count();
diff --git a/src/Lucene.Net/Codecs/MultiLevelSkipListReader.cs b/src/Lucene.Net/Codecs/MultiLevelSkipListReader.cs
index 59624ae26..22856cf7d 100644
--- a/src/Lucene.Net/Codecs/MultiLevelSkipListReader.cs
+++ b/src/Lucene.Net/Codecs/MultiLevelSkipListReader.cs
@@ -255,9 +255,9 @@ namespace Lucene.Net.Codecs
             this.skipPointer[0] = skipPointer;
             this.docCount = df;
             if (Debugging.AssertsEnabled) Debugging.Assert(skipPointer >= 0 && skipPointer <= skipStream[0].Length,"invalid skip pointer: {0}, length={1}", skipPointer, skipStream[0].Length);
-            Array.Clear(m_skipDoc, 0, m_skipDoc.Length);
-            Array.Clear(numSkipped, 0, numSkipped.Length);
-            Array.Clear(childPointer, 0, childPointer.Length);
+            Arrays.Fill(m_skipDoc, 0);
+            Arrays.Fill(numSkipped, 0);
+            Arrays.Fill(childPointer, 0);
 
             haveSkipped = false;
             for (int i = 1; i < numberOfSkipLevels; i++)
diff --git a/src/Lucene.Net/Util/BytesRefArray.cs b/src/Lucene.Net/Util/BytesRefArray.cs
index eff14b050..0fc3fcce7 100644
--- a/src/Lucene.Net/Util/BytesRefArray.cs
+++ b/src/Lucene.Net/Util/BytesRefArray.cs
@@ -1,4 +1,5 @@
 using Lucene.Net.Diagnostics;
+using Lucene.Net.Support;
 using System;
 using System.Collections.Generic;
 using System.Runtime.CompilerServices;
@@ -57,7 +58,7 @@ namespace Lucene.Net.Util
         {
             lastElement = 0;
             currentOffset = 0;
-            Array.Clear(offsets, 0, offsets.Length);
+            Arrays.Fill(offsets, 0);
             pool.Reset(false, true); // no need to 0 fill the buffers we control the allocator
         }
 
diff --git a/src/Lucene.Net/Util/RamUsageEstimator.cs b/src/Lucene.Net/Util/RamUsageEstimator.cs
index b2c4ac035..74915d05e 100644
--- a/src/Lucene.Net/Util/RamUsageEstimator.cs
+++ b/src/Lucene.Net/Util/RamUsageEstimator.cs
@@ -912,7 +912,7 @@ namespace Lucene.Net.Util
                         keys[slot] = key;
                     }
                 }
-                Array.Clear(oldKeys, 0, oldKeys.Length);
+                Arrays.Fill(oldKeys, null);
             }
 
             /// <summary>
@@ -969,7 +969,7 @@ namespace Lucene.Net.Util
             public void Clear()
             {
                 Assigned = 0;
-                Array.Clear(keys, 0, keys.Length);
+                Arrays.Fill(keys, null);
             }
 
             public int Count => Assigned; // LUCENENET NOTE: This was size() in Lucene.
diff --git a/src/Lucene.Net/Util/TimSorter.cs b/src/Lucene.Net/Util/TimSorter.cs
index 66f960a79..591714f61 100644
--- a/src/Lucene.Net/Util/TimSorter.cs
+++ b/src/Lucene.Net/Util/TimSorter.cs
@@ -1,5 +1,6 @@
 using J2N.Numerics;
 using Lucene.Net.Diagnostics;
+using Lucene.Net.Support;
 using System;
 using System.Runtime.CompilerServices;
 
@@ -200,7 +201,7 @@ namespace Lucene.Net.Util
         internal virtual void Reset(int from, int to)
         {
             stackSize = 0;
-            Array.Clear(runEnds, 0, runEnds.Length);
+            Arrays.Fill(runEnds, 0);
             runEnds[0] = from;
             this.to = to;
             int length = to - from;