From 4fdb6a01b35d9cd4dc9e5e4d6682449476d68375 Mon Sep 17 00:00:00 2001 From: mread Date: Thu, 26 Aug 2010 12:20:45 +0100 Subject: fix for memory leak in QSysInfo::s60Version() A CDir was not deleted on several return paths in QSysInfo::s60Version(). This fix uses a QScopedPointer to clean up the CDir no matter what return path is taken. Reviewed-by: Simon Hausmann --- src/corelib/global/qglobal.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index af35316..401af85 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -1828,6 +1828,7 @@ QSysInfo::S60Version QSysInfo::s60Version() CDir* contents; TInt err = fileFinder.FindWildByDir(qt_S60Filter, qt_S60SystemInstallDir, contents); if (err == KErrNone) { + QScopedPointer contentsDeleter(contents); err = contents->Sort(EDescending|ESortByName); if (err == KErrNone && contents->Count() > 0 && (*contents)[0].iName.Length() >= 12) { TInt major = (*contents)[0].iName[9] - '0'; @@ -1850,7 +1851,6 @@ QSysInfo::S60Version QSysInfo::s60Version() } } } - delete contents; } # ifdef Q_CC_NOKIAX86 -- cgit v0.12