scope context saving more minimally
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Fri, 3 Feb 2012 17:28:54 +0000 (18:28 +0100)
committerQt by Nokia <qt-info@nokia.com>
Tue, 28 Feb 2012 08:12:30 +0000 (09:12 +0100)
no point in saving the context when we are not actually modifying the
current context.

Change-Id: Id6f51a163e86bdf402aa0713737b655db68e7ee8
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
qmake/project.cpp

index 3546ac9..eb07dea 100644 (file)
@@ -1712,9 +1712,6 @@ QMakeProject::doProjectInclude(QString file, uchar flags, QHash<QString, QString
         warn_msg(WarnParser, "%s:%d: QtScript support disabled for %s.",
                  pi.file.toLatin1().constData(), pi.line_no, orig_file.toLatin1().constData());
     } else {
-        QStack<ScopeBlock> sc = scope_blocks;
-        IteratorBlock *it = iterator;
-        FunctionBlock *fu = function;
         if(flags & (IncludeFlagNewProject|IncludeFlagNewParser)) {
             // The "project's variables" are used in other places (eg. export()) so it's not
             // possible to use "place" everywhere. Instead just set variables and grab them later
@@ -1730,11 +1727,14 @@ QMakeProject::doProjectInclude(QString file, uchar flags, QHash<QString, QString
             }
             place = proj.variables();
         } else {
+            QStack<ScopeBlock> sc = scope_blocks;
+            IteratorBlock *it = iterator;
+            FunctionBlock *fu = function;
             parsed = read(file, place);
+            iterator = it;
+            function = fu;
+            scope_blocks = sc;
         }
-        iterator = it;
-        function = fu;
-        scope_blocks = sc;
     }
     if(parsed) {
         if(place["QMAKE_INTERNAL_INCLUDED_FILES"].indexOf(orig_file) == -1)