From cd2f9dc0e27021dcd04d535857b1781ef4022ff7 Mon Sep 17 00:00:00 2001 From: Andrei Sergeev Date: Tue, 15 Aug 2023 01:38:48 +0400 Subject: [PATCH] Restore for cycle in JsonConverter Write --- .../FlatArray.JsonConverter.Write.cs | 7 ++++++- .../FlatArray/FlatArray.T/FlatArray.ForEach.cs | 8 ++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/flatcollections-array/FlatArray/FlatArray.T.JsonConverter/FlatArray.JsonConverter.Write.cs b/src/flatcollections-array/FlatArray/FlatArray.T.JsonConverter/FlatArray.JsonConverter.Write.cs index 398445a1..bb874ee0 100644 --- a/src/flatcollections-array/FlatArray/FlatArray.T.JsonConverter/FlatArray.JsonConverter.Write.cs +++ b/src/flatcollections-array/FlatArray/FlatArray.T.JsonConverter/FlatArray.JsonConverter.Write.cs @@ -13,7 +13,12 @@ public override void Write(Utf8JsonWriter writer, FlatArray value, JsonSerial Debug.Assert(options is not null); writer.WriteStartArray(); - value.InternalForEach(item => itemConverter.Write(writer, item, options)); + + for (int i = 0; i < value.length; i++) + { + itemConverter.Write(writer, value.items![i], options); + } + writer.WriteEndArray(); } } diff --git a/src/flatcollections-array/FlatArray/FlatArray.T/FlatArray.ForEach.cs b/src/flatcollections-array/FlatArray/FlatArray.T/FlatArray.ForEach.cs index 21a79e49..9389b9c3 100644 --- a/src/flatcollections-array/FlatArray/FlatArray.T/FlatArray.ForEach.cs +++ b/src/flatcollections-array/FlatArray/FlatArray.T/FlatArray.ForEach.cs @@ -6,20 +6,20 @@ partial struct FlatArray { public void ForEach(Action action) => - InternalForEach(action ?? throw new ArgumentNullException(nameof(action))); + InnerForEach(action ?? throw new ArgumentNullException(nameof(action))); public void ForEach(Action action) => - InternalForEach(action ?? throw new ArgumentNullException(nameof(action))); + InnerForEach(action ?? throw new ArgumentNullException(nameof(action))); [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal void InternalForEach(Action action) + private void InnerForEach(Action action) { for (int i = 0; i < length; i++) { action.Invoke(items![i]); } } [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal void InternalForEach(Action action) + private void InnerForEach(Action action) { for (int i = 0; i < length; i++) { action.Invoke(i, items![i]); } }