Fix unit test for setting locale creating malformed HLSL shader code
Fix malformed HLSL shader code in other locales than classic
Bug: angleproject:1433
Change-Id: I30bad0bd0cfda465ec7200e48e12800d7d8efd26
Reviewed-on: https://chromium-review.googlesource.com/c/1447862
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
diff --git a/src/compiler/translator/OutputHLSL.cpp b/src/compiler/translator/OutputHLSL.cpp
index 84e32dd..e0412cb 100644
--- a/src/compiler/translator/OutputHLSL.cpp
+++ b/src/compiler/translator/OutputHLSL.cpp
@@ -39,7 +39,7 @@
TString ArrayHelperFunctionName(const char *prefix, const TType &type)
{
- TStringStream fnName;
+ TStringStream fnName = sh::InitializeStream<TStringStream>();
fnName << prefix << "_";
if (type.isArray())
{
@@ -132,7 +132,7 @@
constexpr int kZeroCount = 256;
std::string DefineZeroArray()
{
- std::stringstream ss;
+ std::stringstream ss = sh::InitializeStream<std::stringstream>();
// For 'static', if the declaration does not include an initializer, the value is set to zero.
// https://docs.microsoft.com/en-us/windows/desktop/direct3dhlsl/dx-graphics-hlsl-variable-syntax
ss << "static uint " << kZeros << "[" << kZeroCount << "];\n";
@@ -141,7 +141,7 @@
std::string GetZeroInitializer(size_t size)
{
- std::stringstream ss;
+ std::stringstream ss = sh::InitializeStream<std::stringstream>();
size_t quotient = size / kZeroCount;
size_t reminder = size % kZeroCount;
@@ -416,7 +416,7 @@
init += indentString + "{\n";
for (unsigned int arrayIndex = 0u; arrayIndex < type.getOutermostArraySize(); ++arrayIndex)
{
- TStringStream indexedString;
+ TStringStream indexedString = sh::InitializeStream<TStringStream>();
indexedString << name << "[" << arrayIndex << "]";
TType elementType = type;
elementType.toArrayElementType();
@@ -891,8 +891,8 @@
out << kImage2DFunctionString << "\n";
- std::ostringstream systemValueDeclaration;
- std::ostringstream glBuiltinInitialization;
+ std::ostringstream systemValueDeclaration = sh::InitializeStream<std::ostringstream>();
+ std::ostringstream glBuiltinInitialization = sh::InitializeStream<std::ostringstream>();
systemValueDeclaration << "\nstruct CS_INPUT\n{\n";
glBuiltinInitialization << "\nvoid initGLBuiltins(CS_INPUT input)\n"
@@ -1900,7 +1900,7 @@
{
int index = nodeBinary->getRight()->getAsConstantUnion()->getIConst(0);
- std::stringstream prefixSink;
+ std::stringstream prefixSink = sh::InitializeStream<std::stringstream>();
prefixSink << samplerNamePrefixFromStruct(nodeBinary->getLeft()) << "_" << index;
return ImmutableString(prefixSink.str());
}
@@ -1910,7 +1910,7 @@
int index = nodeBinary->getRight()->getAsConstantUnion()->getIConst(0);
const TField *field = s->fields()[index];
- std::stringstream prefixSink;
+ std::stringstream prefixSink = sh::InitializeStream<std::stringstream>();
prefixSink << samplerNamePrefixFromStruct(nodeBinary->getLeft()) << "_"
<< field->name();
return ImmutableString(prefixSink.str());