From f41f15388216e058b39d67388f6526c392dd6e94 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 10 Aug 2020 04:35:02 +0200 Subject: [PATCH] Adapt qmljslexer to Qt base change caa40f57d4d qstrtod is no longer exported. This effectively reverts commit 149cc3af6 as it causes an explicit dependency on private headers, leading to more problems downstream than the implicit dependency using the declaration. Change-Id: I93a9cfc6e440b20d6bed51504bb8004fd67f341c Reviewed-by: Christian Stenger Reviewed-by: Orgad Shaneh --- src/libs/qmljs/parser/qmljslexer.cpp | 14 +++++++++----- src/libs/qmljs/qmljs-lib.pri | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/libs/qmljs/parser/qmljslexer.cpp b/src/libs/qmljs/parser/qmljslexer.cpp index 32bd86c592a..a914536e523 100644 --- a/src/libs/qmljs/parser/qmljslexer.cpp +++ b/src/libs/qmljs/parser/qmljslexer.cpp @@ -35,7 +35,13 @@ #include #include -#include +QT_BEGIN_NAMESPACE +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) +Q_CORE_EXPORT double qstrntod(const char *s00, int len, char const **se, bool *ok); +#else +Q_CORE_EXPORT double qstrntod(const char *s00, qsizetype len, char const **se, bool *ok); +#endif +QT_END_NAMESPACE QT_QML_BEGIN_NAMESPACE @@ -1175,15 +1181,13 @@ int Lexer::scanNumber(QChar ch) } } - chars.append('\0'); - const char *begin = chars.constData(); const char *end = nullptr; bool ok = false; - _tokenValue = qstrtod(begin, &end, &ok); + _tokenValue = qstrntod(begin, chars.size(), &end, &ok); - if (end - begin != chars.size() - 1) { + if (end - begin != chars.size()) { _errorCode = IllegalExponentIndicator; _errorMessage = QCoreApplication::translate("QmlParser", "Illegal syntax for exponential number"); return T_ERROR; diff --git a/src/libs/qmljs/qmljs-lib.pri b/src/libs/qmljs/qmljs-lib.pri index 5c14ef9da31..c9800eab810 100644 --- a/src/libs/qmljs/qmljs-lib.pri +++ b/src/libs/qmljs/qmljs-lib.pri @@ -84,4 +84,4 @@ contains(QT, gui) { $$PWD/qmljsreformatter.h } -QT += xml core-private +QT += xml