Skip to content

Commit 319a208

Browse files
committed
Resolve comments
1 parent b8aa806 commit 319a208

File tree

2 files changed

+4
-34
lines changed

2 files changed

+4
-34
lines changed

src/Microsoft.Azure.SignalR.Protocols/MessagePackUtils.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ internal static string[] ReadStringArrayExcludeNull(ref MessagePackReader reader
161161
var arrayLength = ReadArrayLength(ref reader, field);
162162
if (arrayLength > 0)
163163
{
164-
var list = new List<string>();
164+
var list = new List<string>(arrayLength);
165165
for (int i = 0; i < arrayLength; i++)
166166
{
167167
var fieldName = $"{field}[{i}]";
@@ -174,7 +174,6 @@ internal static string[] ReadStringArrayExcludeNull(ref MessagePackReader reader
174174

175175
return [.. list];
176176
}
177-
178177
return [];
179178
}
180179

@@ -226,7 +225,7 @@ internal static long ReadMapLength(ref MessagePackReader reader, string field)
226225
}
227226
}
228227

229-
internal static long ReadArrayLength(ref MessagePackReader reader, string field)
228+
internal static int ReadArrayLength(ref MessagePackReader reader, string field)
230229
{
231230
try
232231
{

test/Microsoft.Azure.SignalR.Protocols.Tests/ServiceMessageEqualityComparer.cs

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -487,43 +487,14 @@ private static bool HeadersEqual(IDictionary<string, StringValues> x, IDictionar
487487
return true;
488488
}
489489

490-
private static bool MoveUntilNotNull(IEnumerator enumerator)
490+
private static bool SequenceEqualSkipNull<T>(IEnumerable<T> leftEnumerable, IEnumerable<T> rightEnumerable)
491491
{
492-
var moveNext = enumerator.MoveNext();
493-
while (moveNext && enumerator.Current == null)
494-
{
495-
moveNext = enumerator.MoveNext();
496-
}
497-
return moveNext;
498-
}
499-
500-
private static bool SequenceEqualSkipNull(object left, object right)
501-
{
502-
if (left == null && right == null)
503-
{
504-
return true;
505-
}
506-
507-
var leftEnumerable = left as IEnumerable;
508-
var rightEnumerable = right as IEnumerable;
509492
if (leftEnumerable == null || rightEnumerable == null)
510493
{
511494
return false;
512495
}
513496

514-
var leftEnumerator = leftEnumerable.GetEnumerator();
515-
var rightEnumerator = rightEnumerable.GetEnumerator();
516-
var leftMoved = MoveUntilNotNull(leftEnumerator);
517-
var rightMoved = MoveUntilNotNull(rightEnumerator);
518-
for (; leftMoved && rightMoved; leftMoved = MoveUntilNotNull(leftEnumerator), rightMoved = MoveUntilNotNull(rightEnumerator))
519-
{
520-
if (!Equals(leftEnumerator.Current, rightEnumerator.Current))
521-
{
522-
return false;
523-
}
524-
}
525-
526-
return !leftMoved && !rightMoved;
497+
return leftEnumerable.Where(x => x != null).Zip(rightEnumerable.Where(x => x != null), (x, y) => Equals(x, y)).All(z => z);
527498
}
528499

529500
private static bool SequenceEqual(object left, object right)

0 commit comments

Comments
 (0)