summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qdir.cpp
diff options
context:
space:
mode:
authorSergio Ahumada <sergio.ahumada@nokia.com>2011-08-29 08:51:04 (GMT)
committerSergio Ahumada <sergio.ahumada@nokia.com>2011-08-29 08:51:04 (GMT)
commitfc87ef723d5a030fd701257eeca471e450e08fbb (patch)
treedcd380c789de4cc2b586c66277b39b8c9fc0d76f /src/corelib/io/qdir.cpp
parent87136163dcd7ffb8759875bca2b4e559a32167cd (diff)
parente154fb84b075ad3fda4ac02d620b28cc50e46c09 (diff)
downloadQt-fc87ef723d5a030fd701257eeca471e450e08fbb.zip
Qt-fc87ef723d5a030fd701257eeca471e450e08fbb.tar.gz
Qt-fc87ef723d5a030fd701257eeca471e450e08fbb.tar.bz2
Merge remote-tracking branch 'upstream/4.8'
Conflicts: tools/qdoc3/cppcodemarker.cpp
Diffstat (limited to 'src/corelib/io/qdir.cpp')
-rw-r--r--src/corelib/io/qdir.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp
index 3db3dfc..d9086c1 100644
--- a/src/corelib/io/qdir.cpp
+++ b/src/corelib/io/qdir.cpp
@@ -1633,9 +1633,13 @@ bool QDir::operator==(const QDir &dir) const
if (d->filters == other->filters
&& d->sort == other->sort
&& d->nameFilters == other->nameFilters) {
- d->resolveAbsoluteEntry();
- other->resolveAbsoluteEntry();
- return d->absoluteDirEntry.filePath().compare(other->absoluteDirEntry.filePath(), sensitive) == 0;
+
+ // Assume directories are the same if path is the same
+ if (d->dirEntry.filePath() == other->dirEntry.filePath())
+ return true;
+
+ // Fallback to expensive canonical path computation
+ return canonicalPath().compare(dir.canonicalPath(), sensitive) == 0;
}
return false;
}