Skip to content

Commit 9460b49

Browse files
committed
One part of the auxiliary code was removed, and other part moved to an external library - AdvancedStringBuilder
1 parent 1b54aeb commit 9460b49

File tree

16 files changed

+69
-393
lines changed

16 files changed

+69
-393
lines changed

src/MsieJavaScriptEngine/Extensions/ExceptionExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace MsieJavaScriptEngine.Extensions
77
/// <summary>
88
/// Exception extensions
99
/// </summary>
10-
public static class ExceptionExtensions
10+
internal static class ExceptionExtensions
1111
{
1212
/// <summary>
1313
/// Preserves a stack trace of exception

src/MsieJavaScriptEngine/Extensions/StringBuilderExtensions.cs

Lines changed: 0 additions & 95 deletions
This file was deleted.

src/MsieJavaScriptEngine/Extensions/TypeExtensions.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22
#if NETSTANDARD1_3
33
using System.Reflection;
44
#endif
5-
#if NET40
6-
7-
using MsieJavaScriptEngine.Polyfills.System.Reflection;
8-
#endif
95

106
namespace MsieJavaScriptEngine.Extensions
117
{

src/MsieJavaScriptEngine/Helpers/ComHelpers.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
#if !NETSTANDARD
22
using System;
3-
#if NET45
4-
using System.Reflection;
5-
#endif
63
using System.Runtime.InteropServices;
74

85
using MsieJavaScriptEngine.Constants;
9-
#if NET40
10-
using MsieJavaScriptEngine.Polyfills.System;
11-
#endif
126

137
namespace MsieJavaScriptEngine.Helpers
148
{
@@ -27,7 +21,7 @@ public static IntPtr CreateInstanceByClsid<T>(string clsid)
2721
public static IntPtr CreateInstanceByClsid<T>(Guid clsid)
2822
{
2923
IntPtr pInterface;
30-
Guid iid = typeof(T).GetTypeInfo().GUID;
24+
Guid iid = typeof(T).GUID;
3125
HResult.Check(NativeMethods.CoCreateInstance(ref clsid, IntPtr.Zero, 1, ref iid, out pInterface));
3226

3327
return pInterface;
@@ -82,7 +76,7 @@ public static bool TryGetComType(string progId, string serverName, out Type type
8276
public static IntPtr QueryInterface<T>(IntPtr pUnknown)
8377
{
8478
IntPtr pInterface;
85-
Guid iid = typeof(T).GetTypeInfo().GUID;
79+
Guid iid = typeof(T).GUID;
8680

8781
HResult.Check(Marshal.QueryInterface(pUnknown, ref iid, out pInterface));
8882

@@ -92,7 +86,7 @@ public static IntPtr QueryInterface<T>(IntPtr pUnknown)
9286
public static IntPtr QueryInterfaceNoThrow<T>(IntPtr pUnknown)
9387
{
9488
IntPtr pInterface;
95-
Guid iid = typeof(T).GetTypeInfo().GUID;
89+
Guid iid = typeof(T).GUID;
9690
int result = Marshal.QueryInterface(pUnknown, ref iid, out pInterface);
9791

9892
return result == ComErrorCode.S_OK ? pInterface : IntPtr.Zero;

src/MsieJavaScriptEngine/Helpers/JsErrorHelpers.cs

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
using System.Text;
66
using System.Text.RegularExpressions;
77

8+
using AdvancedStringBuilder;
9+
810
using MsieJavaScriptEngine.Extensions;
911
using MsieJavaScriptEngine.Resources;
10-
using MsieJavaScriptEngine.Utilities;
1112

1213
namespace MsieJavaScriptEngine.Helpers
1314
{
@@ -91,7 +92,8 @@ internal static string StringifyCallStackItems(CallStackItem[] callStackItems)
9192
return string.Empty;
9293
}
9394

94-
StringBuilder stackBuilder = StringBuilderPool.GetBuilder();
95+
var stringBuilderPool = StringBuilderPool.Shared;
96+
StringBuilder stackBuilder = stringBuilderPool.Rent();
9597

9698
for (int stackItemIndex = 0; stackItemIndex < stackItemCount; stackItemIndex++)
9799
{
@@ -106,7 +108,7 @@ internal static string StringifyCallStackItems(CallStackItem[] callStackItems)
106108
}
107109

108110
string callStack = stackBuilder.ToString();
109-
StringBuilderPool.ReleaseBuilder(stackBuilder);
111+
stringBuilderPool.Return(stackBuilder);
110112

111113
return callStack;
112114
}
@@ -144,7 +146,8 @@ internal static string GenerateEngineLoadErrorMessage(string description, string
144146

145147
if (!string.IsNullOrWhiteSpace(description))
146148
{
147-
StringBuilder messageBuilder = StringBuilderPool.GetBuilder();
149+
var stringBuilderPool = StringBuilderPool.Shared;
150+
StringBuilder messageBuilder = stringBuilderPool.Rent();
148151
messageBuilder.Append(jsEngineNotLoadedPart);
149152
messageBuilder.Append(" ");
150153
if (quoteDescription)
@@ -157,7 +160,7 @@ internal static string GenerateEngineLoadErrorMessage(string description, string
157160
}
158161

159162
message = messageBuilder.ToString();
160-
StringBuilderPool.ReleaseBuilder(messageBuilder);
163+
stringBuilderPool.Return(messageBuilder);
161164
}
162165
else
163166
{
@@ -223,7 +226,8 @@ internal static string GenerateScriptErrorMessage(string type, string descriptio
223226
);
224227
}
225228

226-
StringBuilder messageBuilder = StringBuilderPool.GetBuilder();
229+
var stringBuilderPool = StringBuilderPool.Shared;
230+
StringBuilder messageBuilder = stringBuilderPool.Rent();
227231
if (!string.IsNullOrWhiteSpace(type))
228232
{
229233
messageBuilder.Append(type);
@@ -247,7 +251,7 @@ internal static string GenerateScriptErrorMessage(string type, string descriptio
247251
}
248252

249253
string errorMessage = messageBuilder.ToString();
250-
StringBuilderPool.ReleaseBuilder(messageBuilder);
254+
stringBuilderPool.Return(messageBuilder);
251255

252256
return errorMessage;
253257
}
@@ -269,7 +273,8 @@ public static string GenerateErrorDetails(JsException jsException, bool omitMess
269273
throw new ArgumentNullException(nameof(jsException));
270274
}
271275

272-
StringBuilder detailsBuilder = StringBuilderPool.GetBuilder();
276+
var stringBuilderPool = StringBuilderPool.Shared;
277+
StringBuilder detailsBuilder = stringBuilderPool.Rent();
273278
WriteCommonErrorDetails(detailsBuilder, jsException, omitMessage);
274279

275280
var jsScriptException = jsException as JsScriptException;
@@ -287,7 +292,7 @@ public static string GenerateErrorDetails(JsException jsException, bool omitMess
287292
detailsBuilder.TrimEnd();
288293

289294
string errorDetails = detailsBuilder.ToString();
290-
StringBuilderPool.ReleaseBuilder(detailsBuilder);
295+
stringBuilderPool.Return(detailsBuilder);
291296

292297
return errorDetails;
293298
}
@@ -306,7 +311,8 @@ public static string GenerateErrorDetails(JsScriptException jsScriptException,
306311
throw new ArgumentNullException(nameof(jsScriptException));
307312
}
308313

309-
StringBuilder detailsBuilder = StringBuilderPool.GetBuilder();
314+
var stringBuilderPool = StringBuilderPool.Shared;
315+
StringBuilder detailsBuilder = stringBuilderPool.Rent();
310316
WriteCommonErrorDetails(detailsBuilder, jsScriptException, omitMessage);
311317
WriteScriptErrorDetails(detailsBuilder, jsScriptException);
312318

@@ -319,7 +325,7 @@ public static string GenerateErrorDetails(JsScriptException jsScriptException,
319325
detailsBuilder.TrimEnd();
320326

321327
string errorDetails = detailsBuilder.ToString();
322-
StringBuilderPool.ReleaseBuilder(detailsBuilder);
328+
stringBuilderPool.Return(detailsBuilder);
323329

324330
return errorDetails;
325331
}
@@ -338,15 +344,16 @@ public static string GenerateErrorDetails(JsRuntimeException jsRuntimeException,
338344
throw new ArgumentNullException(nameof(jsRuntimeException));
339345
}
340346

341-
StringBuilder detailsBuilder = StringBuilderPool.GetBuilder();
347+
var stringBuilderPool = StringBuilderPool.Shared;
348+
StringBuilder detailsBuilder = stringBuilderPool.Rent();
342349
WriteCommonErrorDetails(detailsBuilder, jsRuntimeException, omitMessage);
343350
WriteScriptErrorDetails(detailsBuilder, jsRuntimeException);
344351
WriteRuntimeErrorDetails(detailsBuilder, jsRuntimeException);
345352

346353
detailsBuilder.TrimEnd();
347354

348355
string errorDetails = detailsBuilder.ToString();
349-
StringBuilderPool.ReleaseBuilder(detailsBuilder);
356+
stringBuilderPool.Return(detailsBuilder);
350357

351358
return errorDetails;
352359
}

src/MsieJavaScriptEngine/Helpers/TextHelpers.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
using System;
22
using System.Text;
33

4+
using AdvancedStringBuilder;
5+
46
using MsieJavaScriptEngine.Extensions;
5-
using MsieJavaScriptEngine.Utilities;
67

78
namespace MsieJavaScriptEngine.Helpers
89
{
@@ -64,7 +65,8 @@ public static string GetTextFragmentFromLine(string textLine, int columnNumber,
6465
endPart = ellipsisSymbol;
6566
}
6667

67-
StringBuilder fragmentBuilder = StringBuilderPool.GetBuilder();
68+
var stringBuilderPool = StringBuilderPool.Shared;
69+
StringBuilder fragmentBuilder = stringBuilderPool.Rent();
6870
if (startPart.Length > 0)
6971
{
7072
fragmentBuilder.Append(startPart);
@@ -76,7 +78,7 @@ public static string GetTextFragmentFromLine(string textLine, int columnNumber,
7678
}
7779

7880
fragment = fragmentBuilder.ToString();
79-
StringBuilderPool.ReleaseBuilder(fragmentBuilder);
81+
stringBuilderPool.Return(fragmentBuilder);
8082
}
8183
else
8284
{

src/MsieJavaScriptEngine/JsException.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
using System.Security.Permissions;
66
#endif
77

8+
using AdvancedStringBuilder;
9+
810
using MsieJavaScriptEngine.Constants;
911
using MsieJavaScriptEngine.Helpers;
10-
using MsieJavaScriptEngine.Utilities;
1112

1213
namespace MsieJavaScriptEngine
1314
{
@@ -152,12 +153,14 @@ public override void GetObjectData(SerializationInfo info, StreamingContext cont
152153
/// <returns>A string that represents the current exception</returns>
153154
public override string ToString()
154155
{
155-
StringBuilder resultBuilder = StringBuilderPool.GetBuilder();
156+
string errorDetails = JsErrorHelpers.GenerateErrorDetails(this, true);
157+
158+
var stringBuilderPool = StringBuilderPool.Shared;
159+
StringBuilder resultBuilder = stringBuilderPool.Rent();
156160
resultBuilder.Append(this.GetType().FullName);
157161
resultBuilder.Append(": ");
158162
resultBuilder.Append(this.Message);
159163

160-
string errorDetails = JsErrorHelpers.GenerateErrorDetails(this, true);
161164
if (errorDetails.Length > 0)
162165
{
163166
resultBuilder.AppendLine();
@@ -178,7 +181,7 @@ public override string ToString()
178181
}
179182

180183
string result = resultBuilder.ToString();
181-
StringBuilderPool.ReleaseBuilder(resultBuilder);
184+
stringBuilderPool.Return(resultBuilder);
182185

183186
return result;
184187
}

src/MsieJavaScriptEngine/JsRt/Ie/ChakraIeJsRtJsEngine.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
#endif
1010
using System.Text;
1111

12+
using AdvancedStringBuilder;
13+
1214
using MsieJavaScriptEngine.ActiveScript.Debugging;
1315
using MsieJavaScriptEngine.Constants;
1416
using MsieJavaScriptEngine.Extensions;
@@ -1067,7 +1069,8 @@ private WrapperEngineLoadException WrapTypeLoadException(TypeLoadException origi
10671069
if (originalMessage.ContainsQuotedValue(DllName.JScript9)
10681070
&& (isDllNotFound || originalMessage.ContainsQuotedValue("JsCreateRuntime")))
10691071
{
1070-
StringBuilder descriptionBuilder = StringBuilderPool.GetBuilder();
1072+
var stringBuilderPool = StringBuilderPool.Shared;
1073+
StringBuilder descriptionBuilder = stringBuilderPool.Rent();
10711074
if (isDllNotFound)
10721075
{
10731076
descriptionBuilder.AppendFormat(CommonStrings.Engine_AssemblyNotRegistered, DllName.JScript9);
@@ -1076,7 +1079,7 @@ private WrapperEngineLoadException WrapTypeLoadException(TypeLoadException origi
10761079
descriptionBuilder.AppendFormat(CommonStrings.Engine_IeInstallationRequired, LOWER_IE_VERSION);
10771080

10781081
description = descriptionBuilder.ToString();
1079-
StringBuilderPool.ReleaseBuilder(descriptionBuilder);
1082+
stringBuilderPool.Return(descriptionBuilder);
10801083

10811084
message = JsErrorHelpers.GenerateEngineLoadErrorMessage(description, _engineModeName);
10821085
}

0 commit comments

Comments
 (0)