From 1ff803876e25814ad690373cbb3c7837db731680 Mon Sep 17 00:00:00 2001 From: Nikolay Mitikov Date: Mon, 15 Oct 2018 10:53:52 +0800 Subject: [PATCH 1/3] CSHARP-2456: Use explicit function instead of anonymous. Update src/MongoDB.Bson/IO/JsonWriter.cs Co-Authored-By: mitikov --- src/MongoDB.Bson/IO/JsonWriter.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/MongoDB.Bson/IO/JsonWriter.cs b/src/MongoDB.Bson/IO/JsonWriter.cs index 4c769cb1e90..b6c77bdd631 100644 --- a/src/MongoDB.Bson/IO/JsonWriter.cs +++ b/src/MongoDB.Bson/IO/JsonWriter.cs @@ -814,7 +814,7 @@ protected override void Dispose(bool disposing) // private methods private string EscapedString(string value) { - if (value.All(c => !NeedsEscaping(c))) + if (!NeedsEscaping(value)) { return value; } @@ -935,7 +935,20 @@ private string GuidToString(BsonBinarySubType subType, byte[] bytes, GuidReprese } } - private static bool NeedsEscaping(char c) + private bool NeedsEscaping(string text) + { + foreach (var letter in text) + { + if (NeedsEscaping(letter)) + { + return true; + } + } + + return false; + } + + private bool NeedsEscaping(char c) { switch (c) { From 2e347089434dd1ef0bcdef5e031ed5fe1c884c42 Mon Sep 17 00:00:00 2001 From: Achilles1515 Date: Tue, 27 Nov 2018 12:01:41 -0500 Subject: [PATCH 2/3] CSHARP-2442: Increase StringBuilder capacity. --- src/MongoDB.Bson/IO/JsonWriter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MongoDB.Bson/IO/JsonWriter.cs b/src/MongoDB.Bson/IO/JsonWriter.cs index b6c77bdd631..f759eca4eaa 100644 --- a/src/MongoDB.Bson/IO/JsonWriter.cs +++ b/src/MongoDB.Bson/IO/JsonWriter.cs @@ -819,7 +819,7 @@ private string EscapedString(string value) return value; } - var sb = new StringBuilder(value.Length); + var sb = new StringBuilder(value.Length + 1); foreach (char c in value) { From dd99d23ad27581c8fd67704e6b8f2c7417bd7c43 Mon Sep 17 00:00:00 2001 From: rstam Date: Mon, 11 Mar 2024 15:43:54 -0700 Subject: [PATCH 3/3] CSHARP-2442: Multiply by 2 instead of adding 1 for increased StringBuilder capacity. --- src/MongoDB.Bson/IO/JsonWriter.cs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/MongoDB.Bson/IO/JsonWriter.cs b/src/MongoDB.Bson/IO/JsonWriter.cs index f759eca4eaa..86e45c7fb94 100644 --- a/src/MongoDB.Bson/IO/JsonWriter.cs +++ b/src/MongoDB.Bson/IO/JsonWriter.cs @@ -819,7 +819,7 @@ private string EscapedString(string value) return value; } - var sb = new StringBuilder(value.Length + 1); + var sb = new StringBuilder(value.Length * 2); foreach (char c in value) { @@ -935,20 +935,20 @@ private string GuidToString(BsonBinarySubType subType, byte[] bytes, GuidReprese } } - private bool NeedsEscaping(string text) + private static bool NeedsEscaping(string text) { - foreach (var letter in text) - { - if (NeedsEscaping(letter)) - { - return true; - } - } + foreach (var letter in text) + { + if (NeedsEscaping(letter)) + { + return true; + } + } return false; } - private bool NeedsEscaping(char c) + private static bool NeedsEscaping(char c) { switch (c) {