diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index 21847c2a7c8..bfecc4fe837 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -45,6 +45,7 @@ #ifdef QT_BUILD_CORE_LIB #include #endif +#include QT_BEGIN_NAMESPACE @@ -64,9 +65,9 @@ QString QFileSystemEngine::slowCanonicalized(const QString &path) QString tmpPath = path; int separatorPos = 0; QSet nonSymlinks; - QSet known; + QDuplicateTracker known; - known.insert(path); + (void)known.hasSeen(path); do { #ifdef Q_OS_WIN if (separatorPos == 0) { @@ -94,9 +95,8 @@ QString QFileSystemEngine::slowCanonicalized(const QString &path) tmpPath = QDir::cleanPath(target); separatorPos = 0; - if (known.contains(tmpPath)) + if (known.hasSeen(tmpPath)) return QString(); - known.insert(tmpPath); } else { nonSymlinks.insert(prefix); }