diff options
Diffstat (limited to 'csharp')
-rw-r--r-- | csharp/src/ProtocolBuffers/CodedOutputStream.cs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/csharp/src/ProtocolBuffers/CodedOutputStream.cs b/csharp/src/ProtocolBuffers/CodedOutputStream.cs index c817a20b..f55f8ca2 100644 --- a/csharp/src/ProtocolBuffers/CodedOutputStream.cs +++ b/csharp/src/ProtocolBuffers/CodedOutputStream.cs @@ -1033,6 +1033,13 @@ namespace Google.Protobuf /// </summary>
public void WriteRawVarint32(uint value)
{
+ // Optimize for the common case of a single byte value
+ if (value < 128 && position < limit)
+ {
+ buffer[position++] = (byte)value;
+ return;
+ }
+
while (value > 127 && position < limit)
{
buffer[position++] = (byte) ((value & 0x7F) | 0x80);
|