From 0f6e7a5bcb160f5f181eb16dc8e825f92ab587d1 Mon Sep 17 00:00:00 2001 From: Rairii <2650838+Wack0@users.noreply.github.com> Date: Fri, 11 Apr 2025 12:28:50 +0100 Subject: [PATCH] lib: use single static cultureinfo instead of allocating every time --- IFPSLib/TypedData.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/IFPSLib/TypedData.cs b/IFPSLib/TypedData.cs index d71c254..9145f3e 100644 --- a/IFPSLib/TypedData.cs +++ b/IFPSLib/TypedData.cs @@ -17,6 +17,7 @@ namespace IFPSLib /// public class TypedData { + private static readonly CultureInfo s_Culture = new CultureInfo("en"); public IType Type { get; } public object Value { get; } @@ -129,11 +130,11 @@ namespace IFPSLib return new TypedData(type, br.Read()); case PascalTypeCode.Extended: { - // BUGBUG: there must be something beter than this... but for now, it'll do + // BUGBUG: there must be something better than this... but for now, it'll do var sb = new StringBuilder(); ExtF80.PrintFloat80(sb, br.Read(), PrintFloatFormat.ScientificFormat, 19); TrimDecimalString(sb); - return new TypedData(type, decimal.Parse(sb.ToString(), System.Globalization.NumberStyles.Float, new CultureInfo("en"))); + return new TypedData(type, decimal.Parse(sb.ToString(), NumberStyles.Float, s_Culture)); } case PascalTypeCode.Currency: @@ -208,7 +209,7 @@ namespace IFPSLib WriteValue(bw); break; case PascalTypeCode.Extended: - if (!ExtF80.TryParse(ValueAs().ToString(new CultureInfo("en")), out var extf)) + if (!ExtF80.TryParse(ValueAs().ToString(s_Culture), out var extf)) throw new ArgumentOutOfRangeException("Value {0} cannot fit into an 80-bit floating point number"); bw.Write(extf); break; @@ -343,7 +344,7 @@ namespace IFPSLib sb.Append(')'); return sb.ToString(); } - return string.Format("{0}({1})", Type.Name, Value); + return string.Format(s_Culture, "{0}({1})", Type.Name, Value); } } }