avoid boolean argument trap: introduce QMakeParser::ParseFlag

Change-Id: I26ce032a1aa044e9a4da0c8708a4490b07374992
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
(cherry picked from qttools/066b08fc62c67d586996ea4e272ef05dd3865fac)
(cherry picked from qttools/226f013441990aa4a58f7c82e284057cff659959)
This commit is contained in:
Oswald Buddenhagen 2013-07-24 19:28:33 +02:00 committed by The Qt Project
parent 725bdc3fd2
commit 0a1faaa9eb
3 changed files with 12 additions and 4 deletions

View File

@ -1819,7 +1819,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();

View File

@ -152,10 +152,10 @@ QMakeParser::QMakeParser(ProFileCache *cache, QMakeVfs *vfs, QMakeParserHandler
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);

View File

@ -87,11 +87,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, QMakeVfs *vfs, 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);
@ -184,6 +190,8 @@ private:
friend class ProFileCache;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QMakeParser::ParseFlags)
class QMAKE_EXPORT ProFileCache
{
public: