summaryrefslogtreecommitdiff
path: root/src/mscorlib/corefx/Interop/Unix/System.Globalization.Native/Interop.Utils.cs
diff options
context:
space:
mode:
authorJiyoung Yun <jy910.yun@samsung.com>2017-04-13 14:17:19 +0900
committerJiyoung Yun <jy910.yun@samsung.com>2017-04-13 14:17:19 +0900
commita56e30c8d33048216567753d9d3fefc2152af8ac (patch)
tree7e5d979695fc4a431740982eb1cfecc2898b23a5 /src/mscorlib/corefx/Interop/Unix/System.Globalization.Native/Interop.Utils.cs
parent4b11dc566a5bbfa1378d6266525c281b028abcc8 (diff)
downloadcoreclr-a56e30c8d33048216567753d9d3fefc2152af8ac.tar.gz
coreclr-a56e30c8d33048216567753d9d3fefc2152af8ac.tar.bz2
coreclr-a56e30c8d33048216567753d9d3fefc2152af8ac.zip
Imported Upstream version 2.0.0.11353upstream/2.0.0.11353
Diffstat (limited to 'src/mscorlib/corefx/Interop/Unix/System.Globalization.Native/Interop.Utils.cs')
-rw-r--r--src/mscorlib/corefx/Interop/Unix/System.Globalization.Native/Interop.Utils.cs52
1 files changed, 0 insertions, 52 deletions
diff --git a/src/mscorlib/corefx/Interop/Unix/System.Globalization.Native/Interop.Utils.cs b/src/mscorlib/corefx/Interop/Unix/System.Globalization.Native/Interop.Utils.cs
deleted file mode 100644
index 33b10c0d74..0000000000
--- a/src/mscorlib/corefx/Interop/Unix/System.Globalization.Native/Interop.Utils.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-using System.Text;
-
-internal static partial class Interop
-{
- /// <summary>
- /// Helper for making interop calls that return a string, but we don't know
- /// the correct size of buffer to make. So invoke the interop call with an
- /// increasing buffer until the size is big enough.
- /// </summary>
- internal static bool CallStringMethod<TArg1, TArg2, TArg3>(
- Func<TArg1, TArg2, TArg3, StringBuilder, GlobalizationInterop.ResultCode> interopCall,
- TArg1 arg1,
- TArg2 arg2,
- TArg3 arg3,
- out string result)
- {
- const int initialStringSize = 80;
- const int maxDoubleAttempts = 5;
-
- StringBuilder stringBuilder = StringBuilderCache.Acquire(initialStringSize);
-
- for (int i = 0; i < maxDoubleAttempts; i++)
- {
- GlobalizationInterop.ResultCode resultCode = interopCall(arg1, arg2, arg3, stringBuilder);
-
- if (resultCode == GlobalizationInterop.ResultCode.Success)
- {
- result = StringBuilderCache.GetStringAndRelease(stringBuilder);
- return true;
- }
- else if (resultCode == GlobalizationInterop.ResultCode.InsufficentBuffer)
- {
- // increase the string size and loop
- stringBuilder.EnsureCapacity(stringBuilder.Capacity * 2);
- }
- else
- {
- // if there is an unknown error, don't proceed
- break;
- }
- }
-
- StringBuilderCache.Release(stringBuilder);
- result = null;
- return false;
- }
-}