From e26cd763f18968a192ee1815e88a784364760ac7 Mon Sep 17 00:00:00 2001 From: Freddie Date: Sat, 30 Apr 2022 12:43:34 +0800 Subject: [PATCH] Resize string buffer to account for bytes instead of chars --- Assets/FishNet/Runtime/Serializing/Writer.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Assets/FishNet/Runtime/Serializing/Writer.cs b/Assets/FishNet/Runtime/Serializing/Writer.cs index 191fb93b..85b00750 100644 --- a/Assets/FishNet/Runtime/Serializing/Writer.cs +++ b/Assets/FishNet/Runtime/Serializing/Writer.cs @@ -423,9 +423,10 @@ public void WriteString(string value) * never intentionally inflict allocations on itself. * Reader ensures string count cannot exceed received * packet size. */ - if (value.Length >= _stringBuffer.Length) + int valueMaxBytes = _encoding.GetMaxByteCount(value.Length); + if (valueMaxBytes >= _stringBuffer.Length) { - int nextSize = (_stringBuffer.Length * 2) + value.Length; + int nextSize = (_stringBuffer.Length * 2) + valueMaxBytes; Array.Resize(ref _stringBuffer, nextSize); }