From 81f6001f911c8e899ee23269e324ed74bc3aba19 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 4 Aug 2009 20:39:28 +0200 Subject: [PATCH] move include recursion check to evaluateFile() where it belongs --- src/shared/proparser/profileevaluator.cpp | 30 ++++++++++++----------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp index 75349d0fd52..44f3b7157af 100644 --- a/src/shared/proparser/profileevaluator.cpp +++ b/src/shared/proparser/profileevaluator.cpp @@ -2614,24 +2614,17 @@ QStringList ProFileEvaluator::Private::values(const QString &variableName, const return values(variableName, m_filevaluemap[pro], pro); } +// virtual ProFile *ProFileEvaluator::parsedProFile(const QString &fileName) { - QFileInfo fi(fileName); - if (fi.exists()) { - QString fn = QDir::cleanPath(fi.absoluteFilePath()); - foreach (const ProFile *pf, d->m_profileStack) - if (pf->fileName() == fn) { - errorMessage(d->format("circular inclusion of %1").arg(fn)); - return 0; - } - ProFile *pro = new ProFile(fn); - if (d->read(pro)) - return pro; - delete pro; - } + ProFile *pro = new ProFile(fileName); + if (d->read(pro)) + return pro; + delete pro; return 0; } +// virtual void ProFileEvaluator::releaseParsedProFile(ProFile *proFile) { delete proFile; @@ -2639,7 +2632,16 @@ void ProFileEvaluator::releaseParsedProFile(ProFile *proFile) bool ProFileEvaluator::Private::evaluateFile(const QString &fileName) { - ProFile *pro = q->parsedProFile(fileName); + QFileInfo fi(fileName); + if (!fi.exists()) + return false; + QString fn = QDir::cleanPath(fi.absoluteFilePath()); + foreach (const ProFile *pf, m_profileStack) + if (pf->fileName() == fn) { + q->errorMessage(format("circular inclusion of %1").arg(fn)); + return false; + } + ProFile *pro = q->parsedProFile(fn); if (pro) { bool ok = (pro->Accept(this) == ProItem::ReturnTrue); q->releaseParsedProFile(pro);