diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2014-08-17 20:44:39 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-07-19 10:35:41 +0000 |
commit | 0abd207052a23759a64ebbabbe46b6c2cdf07a5f (patch) | |
tree | 502d6d0ed54df8a4805515caa70c56fbbb66f0e3 /src/gui/text/qzip.cpp | |
parent | 78bba7b0029f9c626f0c686339dec9a9bf9466c6 (diff) |
QZip*: don't hold QZipReader::FileInfo in QList
FileInfo is larger than a void*, so holding them in a QList is needlessly
inefficient. Worse, the code could come to depend on the fragile property
of (inefficient) QLists that references to elements therein never are
invalidated.
Change-Id: I772177c5ac544a5fecce2368f628148308ef260f
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/gui/text/qzip.cpp')
-rw-r--r-- | src/gui/text/qzip.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gui/text/qzip.cpp b/src/gui/text/qzip.cpp index 00a1aa397c..e25ff5a73c 100644 --- a/src/gui/text/qzip.cpp +++ b/src/gui/text/qzip.cpp @@ -430,7 +430,7 @@ public: QIODevice *device; bool ownDevice; bool dirtyFileTree; - QList<FileHeader> fileHeaders; + QVector<FileHeader> fileHeaders; QByteArray comment; uint start_of_directory; }; @@ -889,10 +889,10 @@ bool QZipReader::exists() const /*! Returns the list of files the archive contains. */ -QList<QZipReader::FileInfo> QZipReader::fileInfoList() const +QVector<QZipReader::FileInfo> QZipReader::fileInfoList() const { d->scanFiles(); - QList<QZipReader::FileInfo> files; + QVector<FileInfo> files; const int numFileHeaders = d->fileHeaders.size(); files.reserve(numFileHeaders); for (int i = 0; i < numFileHeaders; ++i) { @@ -1022,7 +1022,7 @@ bool QZipReader::extractAll(const QString &destinationDir) const QDir baseDir(destinationDir); // create directories first - QList<FileInfo> allFiles = fileInfoList(); + const QVector<FileInfo> allFiles = fileInfoList(); foreach (const FileInfo &fi, allFiles) { const QString absPath = destinationDir + QDir::separator() + fi.filePath; if (fi.isDir) { |