Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Figueiredo Jr. <fxjr@mono-cvs.ximian.com>2003-10-24 20:33:49 +0400
committerFrancisco Figueiredo Jr. <fxjr@mono-cvs.ximian.com>2003-10-24 20:33:49 +0400
commit11a59684be5c4ac0935d11f0427d9748b48bb607 (patch)
treed4204fd1a10aee161c997f7e6b1c7580752b1ca4 /mcs/class/Npgsql/NpgsqlTypes
parent79d40fd1cfb67db64e258a099a770bc7f5450af0 (diff)
2003-10-24: Francisco Figueiredo Jr. <fxjrlists@yahoo.com.br>
* Better performance implementation of the method which converts a byte[] to a bytea string. Thanks Jackson Harper (jackson at ximian dot com) svn path=/trunk/mcs/; revision=19362
Diffstat (limited to 'mcs/class/Npgsql/NpgsqlTypes')
-rwxr-xr-xmcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs28
1 files changed, 14 insertions, 14 deletions
diff --git a/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs b/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs
index 18db767b769..0d63fcadccf 100755
--- a/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs
+++ b/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs
@@ -483,20 +483,20 @@ namespace NpgsqlTypes
private static String ConvertByteArrayToBytea(Byte[] byteArray)
{
- NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "ConvertByteArrayToBytea");
- StringBuilder result = new StringBuilder("");
-
- foreach(Byte byteToConvert in byteArray)
- {
- result.Append("\\\\");
- result.Append((byteToConvert & 0xC0) >> 6);
- result.Append((byteToConvert & 0x38) >> 3);
- result.Append(byteToConvert & 0x07);
- }
-
- return result.ToString();
- }
-
+ NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "ConvertByteArrayToBytea");
+ Int32 len = byteArray.Length;
+ Char[] res = new Char [len * 5];
+ for (Int32 i = 0; i <len; i++)
+ {
+ res [(i*5)] = '\\';
+ res [(i*5)+1] = '\\';
+ res [(i*5)+2] = (Char) (((byteArray[i] & 0xC0) >> 6) + '0');
+ res [(i*5)+3] = (Char) (((byteArray[i] & 0x38) >> 3) + '0');
+ res [(i*5)+4] = (Char) ((byteArray[i] & 0x07) + '0');
+ }
+
+ return new String (res);
+
}
}