summaryrefslogtreecommitdiffstats
path: root/source/core/slang-string-util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/core/slang-string-util.cpp')
-rw-r--r--source/core/slang-string-util.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/source/core/slang-string-util.cpp b/source/core/slang-string-util.cpp
index cddee4bc4..7a142f643 100644
--- a/source/core/slang-string-util.cpp
+++ b/source/core/slang-string-util.cpp
@@ -293,7 +293,7 @@ UnownedStringSlice StringUtil::getAtInSplit(const UnownedStringSlice& in, char s
return builder;
}
-/* static */String StringUtil::getString(ISlangBlob* blob)
+/* static */UnownedStringSlice StringUtil::getSlice(ISlangBlob* blob)
{
if (blob)
{
@@ -301,15 +301,20 @@ UnownedStringSlice StringUtil::getAtInSplit(const UnownedStringSlice& in, char s
if (size > 0)
{
const char* contents = (const char*)blob->getBufferPointer();
- // Check it has terminating 0, if not we must construct as if it does
+ // Check it has terminating 0, if it has we skip it, because slices do not need zero termination
if (contents[size - 1] == 0)
{
size--;
}
- return String(contents, contents + size);
+ return UnownedStringSlice(contents, contents + size);
}
}
- return String();
+ return UnownedStringSlice();
+}
+
+/* static */String StringUtil::getString(ISlangBlob* blob)
+{
+ return getSlice(blob);
}
ComPtr<ISlangBlob> StringUtil::createStringBlob(const String& string)