summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Faure <faure@kde.org>2012-02-07 11:35:57 +0100
committerDavid Faure <faure@kde.org>2012-02-07 11:42:19 +0100
commitab40780a42eff625c835d512062fe3f36e478e74 (patch)
tree10ff1489989aa24a5fb9a60fd4311bf458513346 /src
parent17b5dd76fa279350f9f97ce280a782b601e41f8d (diff)
Make QFile member variable a value rather than a pointer
Which saves calls to new and delete. As suggested by Thiago. Change-Id: Icda7e909ac0d3b08df3d8d84b8c1a3a6bb35b782 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/mimetypes/qmimeprovider.cpp46
1 files changed, 20 insertions, 26 deletions
diff --git a/src/mimetypes/qmimeprovider.cpp b/src/mimetypes/qmimeprovider.cpp
index 00ba4eb..140efc5 100644
--- a/src/mimetypes/qmimeprovider.cpp
+++ b/src/mimetypes/qmimeprovider.cpp
@@ -75,7 +75,7 @@ QMimeBinaryProvider::QMimeBinaryProvider(QMimeDatabasePrivate *db)
struct QMimeBinaryProvider::CacheFile
{
- CacheFile(QFile *file);
+ CacheFile(const QString &fileName);
~CacheFile();
bool isValid() const { return m_valid; }
@@ -91,32 +91,33 @@ struct QMimeBinaryProvider::CacheFile
bool load();
bool reload();
- QFile *file;
+ QFile file;
uchar *data;
QDateTime m_mtime;
bool m_valid;
};
-QMimeBinaryProvider::CacheFile::CacheFile(QFile *f)
- : file(f), m_valid(false)
+QMimeBinaryProvider::CacheFile::CacheFile(const QString &fileName)
+ : file(fileName), m_valid(false)
{
load();
}
QMimeBinaryProvider::CacheFile::~CacheFile()
{
- delete file;
}
bool QMimeBinaryProvider::CacheFile::load()
{
- data = file->map(0, file->size());
+ if (!file.open(QIODevice::ReadOnly))
+ return false;
+ data = file.map(0, file.size());
if (data) {
const int major = getUint16(0);
const int minor = getUint16(2);
m_valid = (major == 1 && minor >= 1 && minor <= 2);
}
- m_mtime = QFileInfo(*file).lastModified();
+ m_mtime = QFileInfo(file).lastModified();
return m_valid;
}
@@ -124,11 +125,8 @@ bool QMimeBinaryProvider::CacheFile::reload()
{
//qDebug() << "reload!" << file->fileName();
m_valid = false;
- if (file->isOpen()) {
- file->close();
- if (!file->open(QIODevice::ReadOnly)) {
- return false;
- }
+ if (file.isOpen()) {
+ file.close();
}
data = 0;
return load();
@@ -137,7 +135,7 @@ bool QMimeBinaryProvider::CacheFile::reload()
QMimeBinaryProvider::CacheFile* QMimeBinaryProvider::CacheFileList::findCacheFile(const QString& fileName) const
{
for (const_iterator it = begin(); it != end(); ++it) {
- if ((*it)->file->fileName() == fileName)
+ if ((*it)->file.fileName() == fileName)
return *it;
}
return 0;
@@ -176,7 +174,7 @@ bool QMimeBinaryProvider::isValid()
return false;
// We found exactly one file; is it the user-modified mimes, or a system file?
- const QString foundFile = m_cacheFiles.first()->file->fileName();
+ const QString foundFile = m_cacheFiles.first()->file.fileName();
const QString localCacheFile = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QLatin1String("/mime/mime.cache");
return foundFile != localCacheFile;
@@ -191,7 +189,7 @@ bool QMimeBinaryProvider::CacheFileList::checkCacheChanged()
QMutableListIterator<CacheFile *> it(*this);
while (it.hasNext()) {
CacheFile* cacheFile = it.next();
- QFileInfo fileInfo(*cacheFile->file);
+ QFileInfo fileInfo(cacheFile->file);
if (!fileInfo.exists()) { // This can't happen by just running update-mime-database. But the user could use rm -rf :-)
delete cacheFile;
it.remove();
@@ -223,16 +221,12 @@ void QMimeBinaryProvider::checkCache()
CacheFile* cacheFile = m_cacheFiles.findCacheFile(cacheFileName);
if (!cacheFile) {
//qDebug() << "new file:" << cacheFileName;
- QFile *file = new QFile(cacheFileName);
- if (file->open(QIODevice::ReadOnly)) {
- cacheFile = new CacheFile(file);
- if (cacheFile->isValid()) { // verify version
- m_cacheFiles.append(cacheFile);
- }
- else
- delete cacheFile;
- } else
- delete file;
+ cacheFile = new CacheFile(cacheFileName);
+ if (cacheFile->isValid()) { // verify version
+ m_cacheFiles.append(cacheFile);
+ }
+ else
+ delete cacheFile;
}
}
m_cacheFileNames = cacheFileNames;
@@ -285,7 +279,7 @@ QStringList QMimeBinaryProvider::findByFileName(const QString &fileName, QString
void QMimeBinaryProvider::matchGlobList(QMimeGlobMatchResult& result, CacheFile *cacheFile, int off, const QString &fileName)
{
const int numGlobs = cacheFile->getUint32(off);
- //qDebug() << "Loading" << numGlobs << "globs from" << cacheFile->file->fileName() << "at offset" << cacheFile->globListOffset;
+ //qDebug() << "Loading" << numGlobs << "globs from" << cacheFile->file.fileName() << "at offset" << cacheFile->globListOffset;
for (int i = 0; i < numGlobs; ++i) {
const int globOffset = cacheFile->getUint32(off + 4 + 12 * i);
const int mimeTypeOffset = cacheFile->getUint32(off + 4 + 12 * i + 4);