forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/qmlprojectstorage'
Conflicts: src/plugins/qmldesigner/qmldesignerprojectmanager.cpp src/plugins/qmlprojectmanager/qmlproject.cpp src/plugins/qmlprojectmanager/qmlproject.h Change-Id: I0c0d59c8e3b8455b6ac575d34fdf49f39388db7a Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -154,6 +154,10 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
BasicSmallString(const std::wstring &wstring)
|
||||
: BasicSmallString(BasicSmallString::fromQStringView(wstring))
|
||||
{}
|
||||
|
||||
template<typename BeginIterator,
|
||||
typename EndIterator,
|
||||
typename = std::enable_if_t<std::is_same<BeginIterator, EndIterator>::value>
|
||||
@@ -487,11 +491,31 @@ public:
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||
QStringEncoder encoder{QStringEncoder::Utf8};
|
||||
|
||||
size_type oldSize = size();
|
||||
size_type newSize = oldSize + static_cast<size_type>(encoder.requiredSpace(string.size()));
|
||||
constexpr size_type temporaryArraySize = Size * 6;
|
||||
|
||||
reserve(optimalCapacity(newSize));
|
||||
auto newEnd = encoder.appendToBuffer(data() + size(), string);
|
||||
size_type oldSize = size();
|
||||
size_type maximumRequiredSize = static_cast<size_type>(encoder.requiredSpace(oldSize));
|
||||
char *newEnd = nullptr;
|
||||
|
||||
if (maximumRequiredSize > temporaryArraySize) {
|
||||
size_type newSize = oldSize + maximumRequiredSize;
|
||||
|
||||
reserve(optimalCapacity(newSize));
|
||||
newEnd = encoder.appendToBuffer(data() + oldSize, string);
|
||||
} else {
|
||||
char temporaryArray[temporaryArraySize];
|
||||
|
||||
auto newTemporaryArrayEnd = encoder.appendToBuffer(temporaryArray, string);
|
||||
|
||||
auto newAppendedStringSize = newTemporaryArrayEnd - temporaryArray;
|
||||
size_type newSize = oldSize + newAppendedStringSize;
|
||||
|
||||
reserve(optimalCapacity(newSize));
|
||||
|
||||
std::memcpy(data() + oldSize, temporaryArray, newAppendedStringSize);
|
||||
|
||||
newEnd = data() + newSize;
|
||||
}
|
||||
*newEnd = 0;
|
||||
setSize(newEnd - data());
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user