Browse Source

optimize WriteRawByte

Jan Tattermusch 5 years ago
parent
commit
80780bdffa

+ 1 - 1
csharp/src/Google.Protobuf/WriteBufferHelper.cs

@@ -117,7 +117,7 @@ namespace Google.Protobuf
             }
         }
 
-        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        [MethodImpl(MethodImplOptions.NoInlining)]
         public static void RefreshBuffer(ref Span<byte> buffer, ref WriterInternalState state)
         {
             if (state.writeBufferHelper.codedOutputStream?.InternalOutputStream != null)

+ 2 - 2
csharp/src/Google.Protobuf/WritingPrimitives.cs

@@ -397,9 +397,9 @@ namespace Google.Protobuf
             WriteRawByte(ref buffer, ref state, (byte)(value >> 56));
         }
 
-        public static void WriteRawByte(ref Span<byte> buffer, ref WriterInternalState state, byte value)
+        private static void WriteRawByte(ref Span<byte> buffer, ref WriterInternalState state, byte value)
         {
-            if (state.position == state.limit)
+            if (state.position == buffer.Length)
             {
                 WriteBufferHelper.RefreshBuffer(ref buffer, ref state);
             }