From 1c1ce736990b23ece99b4a868700d6fe03715166 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 29 Jan 2024 21:30:30 +0100 Subject: [PATCH] Bootstrap: remove QBitArray It appears to be used only in qlalr, which is, however, not bootstrapped. Pick-to: 6.6 6.5 6.2 Change-Id: Idc16d957bf687238c7b0ee603d8b092e2048ef18 Reviewed-by: Qt CI Bot Reviewed-by: Thiago Macieira (cherry picked from commit e57f7b1b01b9b34a51a4ee3f898ef7f1fb013f17) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/kernel/qvariant.cpp | 4 ++++ src/corelib/kernel/qvariant.h | 4 ++++ src/corelib/tools/qhash.cpp | 2 ++ src/corelib/tools/qhashfunctions.h | 4 ++++ src/tools/bootstrap/CMakeLists.txt | 1 - 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index b1ce28425de..270d2642e90 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -942,7 +942,9 @@ QVariant::QVariant(double val) noexcept : d(std::piecewise_construct_t{}, val) { QVariant::QVariant(float val) noexcept : d(std::piecewise_construct_t{}, val) {} QVariant::QVariant(const QByteArray &val) noexcept : d(std::piecewise_construct_t{}, val) {} +#ifndef QT_BOOTSTRAPPED QVariant::QVariant(const QBitArray &val) noexcept : d(std::piecewise_construct_t{}, val) {} +#endif QVariant::QVariant(const QString &val) noexcept : d(std::piecewise_construct_t{}, val) {} QVariant::QVariant(QChar val) noexcept : d(std::piecewise_construct_t{}, val) {} QVariant::QVariant(const QStringList &val) noexcept : d(std::piecewise_construct_t{}, val) {} @@ -1843,6 +1845,7 @@ QChar QVariant::toChar() const return qvariant_cast(*this); } +#ifndef QT_BOOTSTRAPPED /*! Returns the variant as a QBitArray if the variant has userType() \l QMetaType::QBitArray; otherwise returns an empty bit array. @@ -1853,6 +1856,7 @@ QBitArray QVariant::toBitArray() const { return qvariant_cast(*this); } +#endif // QT_BOOTSTRAPPED template inline T qNumVariantToHelper(const QVariant::Private &d, bool *ok) diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index c57eed97fb3..6d51d940c5b 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -263,7 +263,9 @@ public: QVariant(QChar qchar) noexcept; QVariant(QDate date) noexcept; QVariant(QTime time) noexcept; +#ifndef QT_BOOTSTRAPPED QVariant(const QBitArray &bitarray) noexcept; +#endif QVariant(const QByteArray &bytearray) noexcept; QVariant(const QDateTime &datetime) noexcept; QVariant(const QHash &hash) noexcept; @@ -372,7 +374,9 @@ public: float toFloat(bool *ok = nullptr) const; qreal toReal(bool *ok = nullptr) const; QByteArray toByteArray() const; +#ifndef QT_BOOTSTRAPPED QBitArray toBitArray() const; +#endif QString toString() const; QStringList toStringList() const; QChar toChar() const; diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp index 06a0230cd47..33f8f2fc7fb 100644 --- a/src/corelib/tools/qhash.cpp +++ b/src/corelib/tools/qhash.cpp @@ -963,6 +963,7 @@ size_t qHash(QStringView key, size_t seed) noexcept return qHashBits(key.data(), key.size()*sizeof(QChar), seed); } +#ifndef QT_BOOTSTRAPPED size_t qHash(const QBitArray &bitArray, size_t seed) noexcept { qsizetype m = bitArray.d.size() - 1; @@ -975,6 +976,7 @@ size_t qHash(const QBitArray &bitArray, size_t seed) noexcept result = ((result << 4) + bitArray.d.at(m)) & ((1 << n) - 1); return result; } +#endif size_t qHash(QLatin1StringView key, size_t seed) noexcept { diff --git a/src/corelib/tools/qhashfunctions.h b/src/corelib/tools/qhashfunctions.h index 715d1b07fc8..fbf4fb501ce 100644 --- a/src/corelib/tools/qhashfunctions.h +++ b/src/corelib/tools/qhashfunctions.h @@ -153,7 +153,9 @@ inline Q_DECL_PURE_FUNCTION size_t qHash(const QByteArray &key, size_t seed = 0 Q_CORE_EXPORT Q_DECL_PURE_FUNCTION size_t qHash(QStringView key, size_t seed = 0) noexcept; inline Q_DECL_PURE_FUNCTION size_t qHash(const QString &key, size_t seed = 0) noexcept { return qHash(QStringView{key}, seed); } +#ifndef QT_BOOTSTRAPPED Q_CORE_EXPORT Q_DECL_PURE_FUNCTION size_t qHash(const QBitArray &key, size_t seed = 0) noexcept; +#endif Q_CORE_EXPORT Q_DECL_PURE_FUNCTION size_t qHash(QLatin1StringView key, size_t seed = 0) noexcept; Q_DECL_CONST_FUNCTION constexpr inline size_t qHash(QKeyCombination key, size_t seed = 0) noexcept { return qHash(key.toCombined(), seed); } @@ -326,7 +328,9 @@ QT_SPECIALIZE_STD_HASH_TO_CALL_QHASH_BY_VALUE(QStringView) QT_SPECIALIZE_STD_HASH_TO_CALL_QHASH_BY_VALUE(QLatin1StringView) QT_SPECIALIZE_STD_HASH_TO_CALL_QHASH_BY_VALUE(QByteArrayView) QT_SPECIALIZE_STD_HASH_TO_CALL_QHASH_BY_CREF(QByteArray) +#ifndef QT_BOOTSTRAPPED QT_SPECIALIZE_STD_HASH_TO_CALL_QHASH_BY_CREF(QBitArray) +#endif QT_END_NAMESPACE diff --git a/src/tools/bootstrap/CMakeLists.txt b/src/tools/bootstrap/CMakeLists.txt index e065fdf2cb3..76fe346b467 100644 --- a/src/tools/bootstrap/CMakeLists.txt +++ b/src/tools/bootstrap/CMakeLists.txt @@ -80,7 +80,6 @@ qt_internal_extend_target(Bootstrap ../../corelib/time/qromancalendar.cpp ../../corelib/time/qtimezone.cpp ../../corelib/tools/qarraydata.cpp - ../../corelib/tools/qbitarray.cpp ../../corelib/tools/qcommandlineoption.cpp ../../corelib/tools/qcommandlineparser.cpp ../../corelib/tools/qcryptographichash.cpp