System.Data.SQLite

Login
This project makes use of Eagle, provided by Mistachkin Systems.
Eagle: Secure Software Automation

Artifact 5700b8bdea49851c69f7ce8b5dc716b484f756c8:

Ticket change [5700b8bdea] - New ticket [d3b877c7e0] Optimize SQLiteConvert.UTF8ToString for .NET Standard 2.1. by anonymous 2020-07-04 12:46:52.
D 2020-07-04T12:46:52.223
J foundin 1.0.113.0
J icomment .NET\sStandard\s2.1\sintroduced\sthe\smethod\s`Marshal.PtrToStringUTF8`,\swhich\scan\sbe\sused\sin\s`SQLiteConvert.UTF8ToString`\s(similar\sto\susing\s`Marshal.PtrToStringUni`\sin\s`SQLite3_UTF16.UTF16ToString`),\sin\sorder\sto\ssave\sallocation\sof\sa\sbyte\sarray\sand\sto\savoid\s`Marshal.ReadByte()`\swhen\susing\sthe\sstandard\sSQLite\slibrary.\r\n\r\nFor\sexample:\r\n\r\n```c#\r\n\s\s\s\spublic\sstatic\sstring\sUTF8ToString(IntPtr\snativestring,\sint\snativestringlen)\r\n\s\s\s\s{\r\n\s\s\s\s\s\sif\s(nativestring\s==\sIntPtr.Zero\s||\snativestringlen\s==\s0)\sreturn\sString.Empty;\r\n\r\n#if\sNETSTANDARD\s&&\s!NETSTANDARD2_0\r\n\s\s\s\s\s\sif\s(nativestringlen\s<\s0)\r\n\s\s\s\s\s\s\s\sreturn\sMarshal.PtrToStringUTF8(nativestring);\r\n\s\s\s\s\s\selse\r\n\s\s\s\s\s\s\s\sreturn\sMarshal.PtrToStringUTF8(nativestring,\snativestringlen);\r\n#else\r\n\s\s\s\s\s\sif\s(nativestringlen\s<\s0)\r\n\s\s\s\s\s\s{\r\n\s\s\s\s\s\s\s\snativestringlen\s=\s0;\r\n\r\n\s\s\s\s\s\s\s\swhile\s(Marshal.ReadByte(nativestring,\snativestringlen)\s!=\s0)\r\n\s\s\s\s\s\s\s\s\s\snativestringlen++;\r\n\r\n\s\s\s\s\s\s\s\sif\s(nativestringlen\s==\s0)\sreturn\sString.Empty;\r\n\s\s\s\s\s\s}\r\n\r\n\s\s\s\s\s\sbyte[]\sbyteArray\s=\snew\sbyte[nativestringlen];\r\n\r\n\s\s\s\s\s\sMarshal.Copy(nativestring,\sbyteArray,\s0,\snativestringlen);\r\n\r\n\s\s\s\s\s\sreturn\s_utf8.GetString(byteArray,\s0,\snativestringlen);\r\n#endif\r\n\s\s\s\s\s\s\s\s}\r\n```\r\n\r\nThank\syou!
J login anonymous
J mimetype text/x-markdown
J private_contact 4bc1e8ce7495dc3abb20ef2109ec243192989cb7
J severity Minor
J status Open
J title Optimize\sSQLiteConvert.UTF8ToString\sfor\s.NET\sStandard\s2.1
J type Performance
K d3b877c7e0f31d0fcaa20efd8dbaa33b28f42dff
U anonymous
Z b1b78703538053fb0c7e69fd59e93ef2