diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2011-07-15 15:39:27 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-07-15 16:00:06 +0200 |
commit | 68711f6ea7362bb2d2ae4d8e56a9928858db494f (patch) | |
tree | 91ec25b126c4e55ec8bdb73088cc3b074f72ab60 | |
parent | 412ef92162f8874a1585221125c31ef5f8ccc9cb (diff) |
fix access to free()d memory
the 'item' reference may become invalid inside the loop.
this approach was chosen (instead of making 'item' a non-reference) to
keep the code more in sync with creator (where the string type is more
complex).
Change-Id: I60a4b0654dc47c0e3466d43904c358eb7e3e64e2
Reviewed-By: Marius Storm-Olsen
Reviewed-on: http://codereview.qt.nokia.com/1702
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
-rw-r--r-- | qmake/project.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/qmake/project.cpp b/qmake/project.cpp index ff5957765a..cb4117bef4 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -2289,7 +2289,7 @@ QMakeProject::doProjectExpand(QString func, QList<QStringList> args_list, ret.prepend(item); foreach (const QString &dep, dependees[item]) { QSet<QString> &dset = dependencies[dep]; - dset.remove(item); + dset.remove(rootSet.at(i)); // *Don't* use 'item' - rootSet may have changed! if (dset.isEmpty()) rootSet << dep; } |