public void ReadTable(IDictionary <string, object> table) { uint tableLength = _reader.ReadUInt32(); if (tableLength == 0) { return; } var marker = new RingBufferPositionMarker(_reader._ringBufferStream); while (marker.LengthRead < tableLength) { string key = ReadShortStr(internIt: false); object value = ReadFieldValue(); table[key] = value; } }
public IDictionary <string, object> ReadTable() { // unbounded allocation! bad var table = new Dictionary <string, object>(capacity: 11); uint tableLength = _reader.ReadUInt32(); if (tableLength == 0) { return(table); } var marker = new RingBufferPositionMarker(_reader._ringBufferStream._ringBuffer); while (marker.LengthRead < tableLength) { string key = ReadShortStr(); object value = ReadFieldValue(); table[key] = value; } return(table); }