From 4c807691b78877202b2f9e5825eabaa644ab0238 Mon Sep 17 00:00:00 2001 From: Plaisted Date: Tue, 19 Jan 2021 18:52:14 -0600 Subject: [PATCH] adding in PlainTokenizer to unpooled SB changes --- src/UglyToad.PdfPig.Tokenization/PlainTokenizer.cs | 7 ++++--- .../Scanner/CoreTokenScanner.cs | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/UglyToad.PdfPig.Tokenization/PlainTokenizer.cs b/src/UglyToad.PdfPig.Tokenization/PlainTokenizer.cs index 8ef87512..5d774638 100644 --- a/src/UglyToad.PdfPig.Tokenization/PlainTokenizer.cs +++ b/src/UglyToad.PdfPig.Tokenization/PlainTokenizer.cs @@ -1,11 +1,12 @@ namespace UglyToad.PdfPig.Tokenization { using Core; + using System.Text; using Tokens; internal class PlainTokenizer : ITokenizer { - private static readonly StringBuilderPool StringBuilderPool = new StringBuilderPool(10); + private readonly StringBuilder stringBuilder = new(); public bool ReadsNextByte { get; } = true; @@ -18,7 +19,7 @@ return false; } - var builder = StringBuilderPool.Borrow(); + var builder = stringBuilder; builder.Append((char)currentByte); while (inputBytes.MoveNext()) { @@ -39,7 +40,7 @@ } var text = builder.ToString(); - StringBuilderPool.Return(builder); + builder.Clear(); switch (text) { diff --git a/src/UglyToad.PdfPig.Tokenization/Scanner/CoreTokenScanner.cs b/src/UglyToad.PdfPig.Tokenization/Scanner/CoreTokenScanner.cs index e69fc3ac..2f676076 100644 --- a/src/UglyToad.PdfPig.Tokenization/Scanner/CoreTokenScanner.cs +++ b/src/UglyToad.PdfPig.Tokenization/Scanner/CoreTokenScanner.cs @@ -15,10 +15,10 @@ private static readonly DictionaryTokenizer DictionaryTokenizer = new DictionaryTokenizer(); private static readonly HexTokenizer HexTokenizer = new HexTokenizer(); private static readonly NameTokenizer NameTokenizer = new NameTokenizer(); - private static readonly PlainTokenizer PlainTokenizer = new PlainTokenizer(); // NOTE: these are not thread safe so should not be static. Each instance includes a // StringBuilder it re-uses. + private readonly PlainTokenizer PlainTokenizer = new PlainTokenizer(); private readonly NumericTokenizer NumericTokenizer = new NumericTokenizer(); private readonly StringTokenizer StringTokenizer = new StringTokenizer();