From: Oswald Buddenhagen Date: Wed, 24 Jul 2013 17:28:33 +0000 (+0200) Subject: avoid boolean argument trap: introduce QMakeParser::ParseFlag X-Git-Tag: accepted/tizen/20131212.181521~89^2~27 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=066b08fc62c67d586996ea4e272ef05dd3865fac;p=platform%2Fupstream%2Fqttools.git avoid boolean argument trap: introduce QMakeParser::ParseFlag Change-Id: I26ce032a1aa044e9a4da0c8708a4490b07374992 Reviewed-by: Joerg Bornemann --- diff --git a/src/linguist/shared/qmakeevaluator.cpp b/src/linguist/shared/qmakeevaluator.cpp index 33befc0..eb9e24c 100644 --- a/src/linguist/shared/qmakeevaluator.cpp +++ b/src/linguist/shared/qmakeevaluator.cpp @@ -1807,7 +1807,7 @@ ProString QMakeEvaluator::first(const ProKey &variableName) const QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateFile( const QString &fileName, QMakeHandler::EvalFileType type, LoadFlags flags) { - if (ProFile *pro = m_parser->parsedProFile(fileName, true)) { + if (ProFile *pro = m_parser->parsedProFile(fileName, QMakeParser::ParseUseCache)) { m_locationStack.push(m_current); VisitReturn ok = visitProFile(pro, type, flags); m_current = m_locationStack.pop(); diff --git a/src/linguist/shared/qmakeparser.cpp b/src/linguist/shared/qmakeparser.cpp index d4e9e57..690a1c0 100644 --- a/src/linguist/shared/qmakeparser.cpp +++ b/src/linguist/shared/qmakeparser.cpp @@ -150,10 +150,10 @@ QMakeParser::QMakeParser(ProFileCache *cache, QMakeParserHandler *handler) initialize(); } -ProFile *QMakeParser::parsedProFile(const QString &fileName, bool cache) +ProFile *QMakeParser::parsedProFile(const QString &fileName, ParseFlags flags) { ProFile *pro; - if (cache && m_cache) { + if ((flags && ParseUseCache) && m_cache) { ProFileCache::Entry *ent; #ifdef PROPARSER_THREAD_SAFE QMutexLocker locker(&m_cache->mutex); diff --git a/src/linguist/shared/qmakeparser.h b/src/linguist/shared/qmakeparser.h index 8d5c3ed..51e3033 100644 --- a/src/linguist/shared/qmakeparser.h +++ b/src/linguist/shared/qmakeparser.h @@ -86,11 +86,17 @@ public: // Call this from a concurrency-free context static void initialize(); + enum ParseFlag { + ParseDefault = 0, + ParseUseCache = 1 + }; + Q_DECLARE_FLAGS(ParseFlags, ParseFlag) + QMakeParser(ProFileCache *cache, QMakeParserHandler *handler); enum SubGrammar { FullGrammar, TestGrammar, ValueGrammar }; // fileName is expected to be absolute and cleanPath()ed. - ProFile *parsedProFile(const QString &fileName, bool cache = false); + ProFile *parsedProFile(const QString &fileName, ParseFlags flags = ParseDefault); ProFile *parsedProBlock(const QString &contents, const QString &name, int line = 0, SubGrammar grammar = FullGrammar); @@ -182,6 +188,8 @@ private: friend class ProFileCache; }; +Q_DECLARE_OPERATORS_FOR_FLAGS(QMakeParser::ParseFlags) + class QMAKE_EXPORT ProFileCache { public: