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:
Tim Jenssen
2022-06-13 13:23:12 +02:00
parent 6aa826436c
commit c4e94c2c9c
34 changed files with 10581 additions and 4556 deletions

View File

@@ -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