diff options
Diffstat (limited to 'qmake/library')
-rw-r--r-- | qmake/library/ioutils.cpp | 1 | ||||
-rw-r--r-- | qmake/library/proitems.cpp | 4 | ||||
-rw-r--r-- | qmake/library/proitems.h | 7 | ||||
-rw-r--r-- | qmake/library/qmakebuiltins.cpp | 15 | ||||
-rw-r--r-- | qmake/library/qmakeevaluator.cpp | 32 | ||||
-rw-r--r-- | qmake/library/qmakeevaluator.h | 15 | ||||
-rw-r--r-- | qmake/library/qmakeevaluator_p.h | 2 | ||||
-rw-r--r-- | qmake/library/qmakeglobals.cpp | 1 | ||||
-rw-r--r-- | qmake/library/qmakeparser.cpp | 2 | ||||
-rw-r--r-- | qmake/library/qmakeparser.h | 1 |
10 files changed, 40 insertions, 40 deletions
diff --git a/qmake/library/ioutils.cpp b/qmake/library/ioutils.cpp index 3e49a99cd5..d2171274d8 100644 --- a/qmake/library/ioutils.cpp +++ b/qmake/library/ioutils.cpp @@ -30,6 +30,7 @@ #include <qdir.h> #include <qfile.h> +#include <qregexp.h> #ifdef Q_OS_WIN # include <windows.h> diff --git a/qmake/library/proitems.cpp b/qmake/library/proitems.cpp index 41bed69f00..9330c2b1bf 100644 --- a/qmake/library/proitems.cpp +++ b/qmake/library/proitems.cpp @@ -238,7 +238,7 @@ ProString &ProString::append(const ProString &other, bool *pending) QChar *ptr; if (pending && !*pending) { ptr = prepareExtend(1 + other.m_length, 0, m_length); - *ptr++ = 32; + *ptr++ = QLatin1Char(' '); } else { ptr = prepareExtend(other.m_length, 0, m_length); } @@ -276,7 +276,7 @@ ProString &ProString::append(const ProStringList &other, bool *pending, bool ski QChar *ptr = prepareExtend(totalLength, 0, m_length); for (int i = startIdx; i < sz; ++i) { if (putSpace) - *ptr++ = 32; + *ptr++ = QLatin1Char(' '); else putSpace = true; const ProString &str = other.at(i); diff --git a/qmake/library/proitems.h b/qmake/library/proitems.h index 936c729ff8..4569d7c3ff 100644 --- a/qmake/library/proitems.h +++ b/qmake/library/proitems.h @@ -68,6 +68,7 @@ class ProString { public: ProString(); ProString(const ProString &other); + ProString &operator=(const ProString &) = default; PROITEM_EXPLICIT ProString(const QString &str); PROITEM_EXPLICIT ProString(const QStringRef &str); PROITEM_EXPLICIT ProString(const char *str); @@ -430,7 +431,7 @@ class ProFunctionDef { public: ProFunctionDef(ProFile *pro, int offset) : m_pro(pro), m_offset(offset) { m_pro->ref(); } ProFunctionDef(const ProFunctionDef &o) : m_pro(o.m_pro), m_offset(o.m_offset) { m_pro->ref(); } - ProFunctionDef(ProFunctionDef &&other) Q_DECL_NOTHROW + ProFunctionDef(ProFunctionDef &&other) noexcept : m_pro(other.m_pro), m_offset(other.m_offset) { other.m_pro = nullptr; } ~ProFunctionDef() { if (m_pro) m_pro->deref(); } ProFunctionDef &operator=(const ProFunctionDef &o) @@ -444,13 +445,13 @@ public: } return *this; } - ProFunctionDef &operator=(ProFunctionDef &&other) Q_DECL_NOTHROW + ProFunctionDef &operator=(ProFunctionDef &&other) noexcept { ProFunctionDef moved(std::move(other)); swap(moved); return *this; } - void swap(ProFunctionDef &other) Q_DECL_NOTHROW + void swap(ProFunctionDef &other) noexcept { qSwap(m_pro, other.m_pro); qSwap(m_offset, other.m_offset); diff --git a/qmake/library/qmakebuiltins.cpp b/qmake/library/qmakebuiltins.cpp index dd7766c8e0..866915bdfd 100644 --- a/qmake/library/qmakebuiltins.cpp +++ b/qmake/library/qmakebuiltins.cpp @@ -882,8 +882,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinExpand( ret += values(map(args.at(0))); break; case E_LIST: { - QString tmp; - tmp.sprintf(".QMAKE_INTERNAL_TMP_variableName_%d", m_listCount++); + QString tmp(QString::asprintf(".QMAKE_INTERNAL_TMP_variableName_%d", m_listCount++)); ret = ProStringList(ProString(tmp)); ProStringList lst; for (const ProString &arg : args) @@ -1458,15 +1457,15 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional( } case T_EXPORT: { const ProKey &var = map(args.at(0)); - for (ProValueMapStack::Iterator vmi = m_valuemapStack.end(); + for (ProValueMapStack::iterator vmi = m_valuemapStack.end(); --vmi != m_valuemapStack.begin(); ) { ProValueMap::Iterator it = (*vmi).find(var); if (it != (*vmi).end()) { if (it->constBegin() == statics.fakeValue.constBegin()) { // This is stupid, but qmake doesn't propagate deletions - m_valuemapStack.first()[var] = ProStringList(); + m_valuemapStack.front()[var] = ProStringList(); } else { - m_valuemapStack.first()[var] = *it; + m_valuemapStack.front()[var] = *it; } (*vmi).erase(it); while (--vmi != m_valuemapStack.begin()) @@ -1477,7 +1476,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional( return ReturnTrue; } case T_DISCARD_FROM: { - if (m_valuemapStack.count() != 1) { + if (m_valuemapStack.size() != 1) { evalError(fL1S("discard_from() cannot be called from functions.")); return ReturnFalse; } @@ -1487,7 +1486,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional( int pro = m_vfs->idForFileName(fn, flags | QMakeVfs::VfsAccessedOnly); if (!pro) return ReturnFalse; - ProValueMap &vmap = m_valuemapStack.first(); + ProValueMap &vmap = m_valuemapStack.front(); for (auto vit = vmap.begin(); vit != vmap.end(); ) { if (!vit->isEmpty()) { auto isFrom = [pro](const ProString &s) { @@ -1515,7 +1514,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional( else ++fit; } - ProStringList &iif = m_valuemapStack.first()[ProKey("QMAKE_INTERNAL_INCLUDED_FILES")]; + ProStringList &iif = m_valuemapStack.front()[ProKey("QMAKE_INTERNAL_INCLUDED_FILES")]; int idx = iif.indexOf(ProString(fn)); if (idx >= 0) iif.removeAt(idx); diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp index ade8e15a39..70897214b2 100644 --- a/qmake/library/qmakeevaluator.cpp +++ b/qmake/library/qmakeevaluator.cpp @@ -601,14 +601,16 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProBlock( case TokBypassNesting: blockLen = getBlockLen(tokPtr); if ((m_cumulative || okey != or_op) && blockLen) { - ProValueMapStack savedValuemapStack = m_valuemapStack; + ProValueMapStack savedValuemapStack = std::move(m_valuemapStack); m_valuemapStack.clear(); - m_valuemapStack.append(savedValuemapStack.takeFirst()); + m_valuemapStack.splice(m_valuemapStack.end(), + savedValuemapStack, savedValuemapStack.begin()); traceMsg("visiting nesting-bypassing block"); ret = visitProBlock(tokPtr); traceMsg("visited nesting-bypassing block"); - savedValuemapStack.prepend(m_valuemapStack.first()); - m_valuemapStack = savedValuemapStack; + savedValuemapStack.splice(savedValuemapStack.begin(), + m_valuemapStack, m_valuemapStack.begin()); + m_valuemapStack = std::move(savedValuemapStack); } else { traceMsg("skipped nesting-bypassing block"); ret = ReturnTrue; @@ -1439,7 +1441,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile( for (ProValueMap::ConstIterator it = m_extraVars.constBegin(); it != m_extraVars.constEnd(); ++it) - m_valuemapStack.first().insert(it.key(), it.value()); + m_valuemapStack.front().insert(it.key(), it.value()); // In case default_pre needs to make decisions based on the current // build pass configuration. @@ -1568,8 +1570,8 @@ void QMakeEvaluator::updateFeaturePaths() } for (int i = 0; i < feature_roots.count(); ++i) - if (!feature_roots.at(i).endsWith((ushort)'/')) - feature_roots[i].append((ushort)'/'); + if (!feature_roots.at(i).endsWith(QLatin1Char('/'))) + feature_roots[i].append(QLatin1Char('/')); feature_roots.removeDuplicates(); @@ -1707,9 +1709,9 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateFunction( { VisitReturn vr; - if (m_valuemapStack.count() >= 100) { + if (m_valuemapStack.size() >= 100) { evalError(fL1S("Ran into infinite recursion (depth > 100).")); - vr = ReturnFalse; + vr = ReturnError; } else { m_valuemapStack.push(ProValueMap()); m_locationStack.push(m_current); @@ -1859,7 +1861,7 @@ static bool isFunctParam(const ProKey &variableName) ProValueMap *QMakeEvaluator::findValues(const ProKey &variableName, ProValueMap::Iterator *rit) { - ProValueMapStack::Iterator vmi = m_valuemapStack.end(); + ProValueMapStack::iterator vmi = m_valuemapStack.end(); for (bool first = true; ; first = false) { --vmi; ProValueMap::Iterator it = (*vmi).find(variableName); @@ -1886,7 +1888,7 @@ ProStringList &QMakeEvaluator::valuesRef(const ProKey &variableName) return *it; } if (!isFunctParam(variableName)) { - ProValueMapStack::Iterator vmi = m_valuemapStack.end(); + ProValueMapStack::iterator vmi = m_valuemapStack.end(); if (--vmi != m_valuemapStack.begin()) { do { --vmi; @@ -1905,7 +1907,7 @@ ProStringList &QMakeEvaluator::valuesRef(const ProKey &variableName) ProStringList QMakeEvaluator::values(const ProKey &variableName) const { - ProValueMapStack::ConstIterator vmi = m_valuemapStack.constEnd(); + ProValueMapStack::const_iterator vmi = m_valuemapStack.cend(); for (bool first = true; ; first = false) { --vmi; ProValueMap::ConstIterator it = (*vmi).constFind(variableName); @@ -1914,7 +1916,7 @@ ProStringList QMakeEvaluator::values(const ProKey &variableName) const break; return *it; } - if (vmi == m_valuemapStack.constBegin()) + if (vmi == m_valuemapStack.cbegin()) break; if (first && isFunctParam(variableName)) break; @@ -1942,7 +1944,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateFile( m_current = m_locationStack.pop(); pro->deref(); if (ok == ReturnTrue && !(flags & LoadHidden)) { - ProStringList &iif = m_valuemapStack.first()[ProKey("QMAKE_INTERNAL_INCLUDED_FILES")]; + ProStringList &iif = m_valuemapStack.front()[ProKey("QMAKE_INTERNAL_INCLUDED_FILES")]; ProString ifn(fileName); if (!iif.contains(ifn)) iif << ifn; @@ -2071,7 +2073,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateFileInto( return ret; *values = visitor.m_valuemapStack.top(); ProKey qiif("QMAKE_INTERNAL_INCLUDED_FILES"); - ProStringList &iif = m_valuemapStack.first()[qiif]; + ProStringList &iif = m_valuemapStack.front()[qiif]; const auto ifns = values->value(qiif); for (const ProString &ifn : ifns) if (!iif.contains(ifn)) diff --git a/qmake/library/qmakeevaluator.h b/qmake/library/qmakeevaluator.h index f617681cbb..9f702b9182 100644 --- a/qmake/library/qmakeevaluator.h +++ b/qmake/library/qmakeevaluator.h @@ -38,7 +38,6 @@ #include "ioutils.h" #include <qlist.h> -#include <qlinkedlist.h> #include <qmap.h> #include <qset.h> #include <qstack.h> @@ -54,6 +53,8 @@ # include <qmutex.h> #endif +#include <list> + QT_BEGIN_NAMESPACE class QMakeGlobals; @@ -94,15 +95,15 @@ public: #endif }; -// We use a QLinkedList based stack instead of a QVector based one (QStack), so that +// We use a list-based stack instead of a vector-based one, so that // the addresses of value maps stay constant. The qmake generators rely on that. -class QMAKE_EXPORT ProValueMapStack : public QLinkedList<ProValueMap> +class QMAKE_EXPORT ProValueMapStack : public std::list<ProValueMap> { public: - inline void push(const ProValueMap &t) { append(t); } - inline ProValueMap pop() { return takeLast(); } - ProValueMap &top() { return last(); } - const ProValueMap &top() const { return last(); } + inline void push(const ProValueMap &t) { push_back(t); } + inline ProValueMap pop() { auto r = std::move(back()); pop_back(); return r; } + ProValueMap &top() { return back(); } + const ProValueMap &top() const { return back(); } }; namespace QMakeInternal { struct QMakeBuiltin; } diff --git a/qmake/library/qmakeevaluator_p.h b/qmake/library/qmakeevaluator_p.h index f888bc5765..da83ff0de2 100644 --- a/qmake/library/qmakeevaluator_p.h +++ b/qmake/library/qmakeevaluator_p.h @@ -31,8 +31,6 @@ #include "proitems.h" -#include <qregexp.h> - #define debugMsg if (!m_debugLevel) {} else debugMsgInternal #define traceMsg if (!m_debugLevel) {} else traceMsgInternal #ifdef PROEVALUATOR_DEBUG diff --git a/qmake/library/qmakeglobals.cpp b/qmake/library/qmakeglobals.cpp index daf4707779..1d76cecc45 100644 --- a/qmake/library/qmakeglobals.cpp +++ b/qmake/library/qmakeglobals.cpp @@ -38,7 +38,6 @@ #include <qfile.h> #include <qfileinfo.h> #include <qlist.h> -#include <qregexp.h> #include <qset.h> #include <qstack.h> #include <qstring.h> diff --git a/qmake/library/qmakeparser.cpp b/qmake/library/qmakeparser.cpp index 4c8360b459..ffe90ebda7 100644 --- a/qmake/library/qmakeparser.cpp +++ b/qmake/library/qmakeparser.cpp @@ -621,7 +621,7 @@ void QMakeParser::read(ProFile *pro, const QStringRef &in, int line, SubGrammar if (c != term) { parseError(fL1S("Missing %1 terminator [found %2]") .arg(QChar(term)) - .arg(c ? QString(c) : QString::fromLatin1("end-of-line"))); + .arg(c ? QString(QChar(c)) : QString::fromLatin1("end-of-line"))); m_inError = true; // Just parse on, as if there was a terminator ... } else { diff --git a/qmake/library/qmakeparser.h b/qmake/library/qmakeparser.h index 7b96d4e88f..c8c5c7718e 100644 --- a/qmake/library/qmakeparser.h +++ b/qmake/library/qmakeparser.h @@ -111,7 +111,6 @@ private: struct BlockScope { BlockScope() : start(nullptr), braceLevel(0), special(false), inBranch(false), nest(NestNone) {} - BlockScope(const BlockScope &other) { *this = other; } ushort *start; // Where this block started; store length here int braceLevel; // Nesting of braces in scope bool special; // Single-line conditionals inside loops, etc. cannot have else branches |