summaryrefslogtreecommitdiffstats
path: root/source/core/slang-string.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/core/slang-string.cpp')
-rw-r--r--source/core/slang-string.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/source/core/slang-string.cpp b/source/core/slang-string.cpp
index 5a3d8e4f9..460a077b5 100644
--- a/source/core/slang-string.cpp
+++ b/source/core/slang-string.cpp
@@ -172,14 +172,26 @@ namespace Slang
else
{
List<char> buf;
- Slang::Encoding::UTF16->GetBytes(buf, *this);
+ switch(sizeof(wchar_t))
+ {
+ case 2:
+ Slang::Encoding::UTF16->GetBytes(buf, *this);
+ break;
+
+ case 4:
+ Slang::Encoding::UTF32->GetBytes(buf, *this);
+ break;
+
+ default:
+ break;
+ }
auto length = buf.Count() / sizeof(wchar_t);
if (outLength)
*outLength = length;
- buf.Add(0);
- buf.Add(0);
+ for(int ii = 0; ii < sizeof(wchar_t); ++ii)
+ buf.Add(0);
wchar_t* beginData = (wchar_t*)buf.Buffer();
wchar_t* endData = beginData + length;