diff options
Diffstat (limited to 'qmake/library/qmakeparser.cpp')
-rw-r--r-- | qmake/library/qmakeparser.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/qmake/library/qmakeparser.cpp b/qmake/library/qmakeparser.cpp index 37608c7a15..4c8360b459 100644 --- a/qmake/library/qmakeparser.cpp +++ b/qmake/library/qmakeparser.cpp @@ -45,11 +45,17 @@ QT_BEGIN_NAMESPACE // /////////////////////////////////////////////////////////////////////// +ProFileCache::ProFileCache() +{ + QMakeVfs::ref(); +} + ProFileCache::~ProFileCache() { for (const Entry &ent : qAsConst(parsed_files)) if (ent.pro) ent.pro->deref(); + QMakeVfs::deref(); } void ProFileCache::discardFile(const QString &fileName, QMakeVfs *vfs) @@ -215,7 +221,7 @@ ProFile *QMakeParser::parsedProFile(const QString &fileName, ParseFlags flags) pro->itemsRef()->squeeze(); pro->ref(); } else { - pro = 0; + pro = nullptr; } ent->pro = pro; #ifdef PROPARSER_THREAD_SAFE @@ -234,7 +240,7 @@ ProFile *QMakeParser::parsedProFile(const QString &fileName, ParseFlags flags) if (readFile(id, flags, &contents)) pro = parsedProBlock(QStringRef(&contents), id, fileName, 1, FullGrammar); else - pro = 0; + pro = nullptr; } return pro; } @@ -437,7 +443,7 @@ void QMakeParser::read(ProFile *pro, const QStringRef &in, int line, SubGrammar if (context == CtxPureValue) { end = inend; - cptr = 0; + cptr = nullptr; lineCont = false; indent = 0; // just gcc being stupid goto nextChr; @@ -449,7 +455,7 @@ void QMakeParser::read(ProFile *pro, const QStringRef &in, int line, SubGrammar // First, skip leading whitespace for (indent = 0; ; ++cur, ++indent) { if (cur == inend) { - cur = 0; + cur = nullptr; goto flushLine; } c = *cur; @@ -1112,7 +1118,7 @@ void QMakeParser::finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int arg if (uc == ptr) { // for(literal) (only "ever" would be legal if qmake was sane) putTok(tokPtr, TokForLoop); - putHashStr(tokPtr, (ushort *)0, (uint)0); + putHashStr(tokPtr, nullptr, (uint)0); putBlockLen(tokPtr, 1 + 3 + nlen + 1); putTok(tokPtr, TokHashLiteral); putHashStr(tokPtr, uce + 2, nlen); @@ -1135,7 +1141,7 @@ void QMakeParser::finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int arg } else if (argc == 1) { // for(non-literal) (this wouldn't be here if qmake was sane) putTok(tokPtr, TokForLoop); - putHashStr(tokPtr, (ushort *)0, (uint)0); + putHashStr(tokPtr, nullptr, (uint)0); uc = uce; goto doFor; } |