Skip to content

Commit 199a19e

Browse files
committed
Skip over List and Map encountered by ReadAny
1 parent 0feaf11 commit 199a19e

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

RabbitMQ.Stream.Client/AMQP/AmqpWireFormattingRead.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,35 @@ internal static int ReadAny(ref SequenceReader<byte> reader, out object value)
148148
value = null;
149149
reader.Advance(1);
150150
return 1;
151+
152+
case FormatCode.List0:
153+
case FormatCode.List8:
154+
case FormatCode.List32:
155+
{
156+
offset = ReadListHeader(ref reader, out var fields);
157+
for (long i = 0; i < fields; i++)
158+
{
159+
offset += ReadAny(ref reader, out _);
160+
}
161+
162+
value = null;
163+
return offset;
164+
}
165+
166+
case FormatCode.Map8:
167+
case FormatCode.Map32:
168+
{
169+
offset = ReadMapHeader(ref reader, out var count);
170+
var values = count / 2;
171+
for (uint i = 0; i < values; i++)
172+
{
173+
offset += ReadAny(ref reader, out _);
174+
offset += ReadAny(ref reader, out _);
175+
}
176+
177+
value = null;
178+
return offset;
179+
}
151180
}
152181

153182
throw new AmqpParseException($"Read Any: Invalid type: {type}");

0 commit comments

Comments
 (0)