From 5175824f151f6e1fee6eb7aaf5ac30e1a5654513 Mon Sep 17 00:00:00 2001 From: David Faure Date: Fri, 7 Sep 2018 23:31:51 +0200 Subject: QStringList: restore binary compatibility with Qt 5.11 Commit 8b6100d512 removed bool QtPrivate::QStringList_contains(const QStringList *that, const QString &str, ...) (in favor of a QStringView overload). However this was used inline in qstringlist.h, so apps were referencing that symbol directly. As a result, upgrading to Qt 5.12 gave errors like libKF5ConfigCore.so.5.50.0: undefined reference to `QtPrivate::QStringList_contains(QStringList const*, QString const&, Qt::CaseSensitivity)@Qt_5' collect2: error: ld returned 1 exit status Change-Id: I862263a9b06157052df894a201dfd86df8c3f4fe Reviewed-by: Thiago Macieira Reviewed-by: Luca Beldi --- src/corelib/tools/qstringlist.cpp | 9 +++++++++ src/corelib/tools/qstringlist.h | 3 +++ 2 files changed, 12 insertions(+) (limited to 'src') diff --git a/src/corelib/tools/qstringlist.cpp b/src/corelib/tools/qstringlist.cpp index c85a4f41dd..cf150c2a1b 100644 --- a/src/corelib/tools/qstringlist.cpp +++ b/src/corelib/tools/qstringlist.cpp @@ -335,6 +335,15 @@ static bool stringList_contains(const QStringList &stringList, const T &str, Qt: */ #endif +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) +/// Not really needed anymore, but kept for binary compatibility +bool QtPrivate::QStringList_contains(const QStringList *that, const QString &str, + Qt::CaseSensitivity cs) +{ + return stringList_contains(*that, str, cs); +} +#endif + /*! \fn bool QStringList::contains(QStringView str, Qt::CaseSensitivity cs) const \overload diff --git a/src/corelib/tools/qstringlist.h b/src/corelib/tools/qstringlist.h index b04b7c0bc8..10cbad04d6 100644 --- a/src/corelib/tools/qstringlist.h +++ b/src/corelib/tools/qstringlist.h @@ -164,6 +164,9 @@ namespace QtPrivate { QStringList Q_CORE_EXPORT QStringList_filter(const QStringList *that, const QString &str, Qt::CaseSensitivity cs); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + bool Q_CORE_EXPORT QStringList_contains(const QStringList *that, const QString &str, Qt::CaseSensitivity cs); +#endif bool Q_CORE_EXPORT QStringList_contains(const QStringList *that, QStringView str, Qt::CaseSensitivity cs); bool Q_CORE_EXPORT QStringList_contains(const QStringList *that, QLatin1String str, Qt::CaseSensitivity cs); void Q_CORE_EXPORT QStringList_replaceInStrings(QStringList *that, const QString &before, const QString &after, -- cgit v1.2.3