summaryrefslogtreecommitdiffstats
path: root/source/core/slang-string-util.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2021-05-14 17:50:00 -0400
committerGitHub <noreply@github.com>2021-05-14 17:50:00 -0400
commitd4316c88457a32f1169b2d7d82053ccbc05fa7ed (patch)
treecbc87350b9ef2f5be31ebc20783e08b895767779 /source/core/slang-string-util.cpp
parent79d106fac18f5792fcac448a0b037aa834fa6042 (diff)
FXC as DownstreamCompiler (#1844)
* #include an absolute path didn't work - because paths were taken to always be relative. * WIP Fxc as downstream compiler. * First pass FXC downstream compiler working. * GCC compile fix. * Fix FXC parsing issue. * Special case filesystem access. * Use StringUtil getSlice. * Fix isses with not emitting source for FXC. * Small fixes for DXBC handling.
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)