diff options
author | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-08-24 14:10:17 +0300 |
---|---|---|
committer | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-08-26 07:18:40 +0000 |
commit | 0445f31a6fae37aa4f6b92978ff58b0f2848d36b (patch) | |
tree | 33db7e5419a9a6cfdbc269fed7088a7978ca3f95 /src/quick/scenegraph/util/qsgshadersourcebuilder.cpp | |
parent | 0010a214ec30509ef389f57a10944a54a62aeeb2 (diff) |
Use QStringBuilder more
Reduce allocations.
Change-Id: I8b8a0d0360e618c65894f1f7c12476b41a1dbc5d
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick/scenegraph/util/qsgshadersourcebuilder.cpp')
-rw-r--r-- | src/quick/scenegraph/util/qsgshadersourcebuilder.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/quick/scenegraph/util/qsgshadersourcebuilder.cpp b/src/quick/scenegraph/util/qsgshadersourcebuilder.cpp index caa296451e..25af1997a8 100644 --- a/src/quick/scenegraph/util/qsgshadersourcebuilder.cpp +++ b/src/quick/scenegraph/util/qsgshadersourcebuilder.cpp @@ -310,13 +310,10 @@ void QSGShaderSourceBuilder::addDefinition(const QByteArray &definition) const char *insertionPos = extensionPos ? extensionPos : (versionPos ? versionPos : input); // Construct a new shader string, inserting the definition - QByteArray newSource; - newSource.reserve(m_source.size() + definition.size() + 9); - newSource += QByteArray::fromRawData(input, insertionPos - input); - newSource += QByteArrayLiteral("#define ") + definition + QByteArrayLiteral("\n"); - newSource += QByteArray::fromRawData(insertionPos, m_source.size() - (insertionPos - input)); - - m_source = newSource; + QByteArray newSource = QByteArray::fromRawData(input, insertionPos - input) + + "#define " + definition + '\n' + + QByteArray::fromRawData(insertionPos, m_source.size() - (insertionPos - input)); + m_source = std::move(newSource); } void QSGShaderSourceBuilder::removeVersion() |