From a0f956932df52ead0223a68243b5862c7b037cf1 Mon Sep 17 00:00:00 2001 From: Jon Skeet Date: Wed, 17 Jun 2015 15:34:29 +0100 Subject: Use our "local" copy of Encoding.UTF8 in CodedInputStream too. --- csharp/src/ProtocolBuffers/CodedInputStream.cs | 4 ++-- csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs | 2 +- csharp/src/ProtocolBuffers/CodedOutputStream.cs | 9 +++++---- 3 files changed, 8 insertions(+), 7 deletions(-) (limited to 'csharp/src') diff --git a/csharp/src/ProtocolBuffers/CodedInputStream.cs b/csharp/src/ProtocolBuffers/CodedInputStream.cs index 447adbb1..56283318 100644 --- a/csharp/src/ProtocolBuffers/CodedInputStream.cs +++ b/csharp/src/ProtocolBuffers/CodedInputStream.cs @@ -339,12 +339,12 @@ namespace Google.Protobuf { // Fast path: We already have the bytes in a contiguous buffer, so // just copy directly from it. - String result = Encoding.UTF8.GetString(buffer, bufferPos, size); + String result = CodedOutputStream.Utf8Encoding.GetString(buffer, bufferPos, size); bufferPos += size; return result; } // Slow path: Build a byte array first then copy it. - return Encoding.UTF8.GetString(ReadRawBytes(size), 0, size); + return CodedOutputStream.Utf8Encoding.GetString(ReadRawBytes(size), 0, size); } /// diff --git a/csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs b/csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs index e3d2b068..ef1f4c0c 100644 --- a/csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs +++ b/csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs @@ -135,7 +135,7 @@ namespace Google.Protobuf /// public static int ComputeStringSize(String value) { - int byteArraySize = UTF8.GetByteCount(value); + int byteArraySize = Utf8Encoding.GetByteCount(value); return ComputeRawVarint32Size((uint) byteArraySize) + byteArraySize; } diff --git a/csharp/src/ProtocolBuffers/CodedOutputStream.cs b/csharp/src/ProtocolBuffers/CodedOutputStream.cs index 6c135e86..1e6e7e55 100644 --- a/csharp/src/ProtocolBuffers/CodedOutputStream.cs +++ b/csharp/src/ProtocolBuffers/CodedOutputStream.cs @@ -59,7 +59,8 @@ namespace Google.Protobuf /// public sealed partial class CodedOutputStream { - private static readonly Encoding UTF8 = Encoding.UTF8; + // "Local" copy of Encoding.UTF8, for efficiency. (Yes, it makes a difference.) + internal static readonly Encoding Utf8Encoding = Encoding.UTF8; /// /// The buffer size used by CreateInstance(Stream). @@ -240,7 +241,7 @@ namespace Google.Protobuf { // Optimise the case where we have enough space to write // the string directly to the buffer, which should be common. - int length = UTF8.GetByteCount(value); + int length = Utf8Encoding.GetByteCount(value); WriteRawVarint32((uint)length); if (limit - position >= length) { @@ -253,13 +254,13 @@ namespace Google.Protobuf } else { - UTF8.GetBytes(value, 0, value.Length, buffer, position); + Utf8Encoding.GetBytes(value, 0, value.Length, buffer, position); } position += length; } else { - byte[] bytes = UTF8.GetBytes(value); + byte[] bytes = Utf8Encoding.GetBytes(value); WriteRawBytes(bytes); } } -- cgit v1.2.3