summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qtemporaryfile_p.h
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2015-05-19 17:51:15 -0700
committerThiago Macieira <thiago.macieira@intel.com>2015-07-15 04:53:30 +0000
commit02418d1aaa6760e08d55f0f6213d02d56b057fd2 (patch)
tree77afef448cb1e1c8bdbafe8b23ec07b373533863 /src/corelib/io/qtemporaryfile_p.h
parentca60311a60677f1133b0d4c50343f1644e184fa5 (diff)
Set the state of QTemporaryFileEngine properly prior to reopening
QTemporaryFileEngine does not store the pattern, so it needs to get it again from QTemporaryFilePrivate prior to reopening the file. It's possible to lose the pattern when remove() is called on the object. Task-number: QTBUG-46156 Change-Id: I66a35ce5f88941f29aa6ffff13dfc7f83d4fa3a2 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'src/corelib/io/qtemporaryfile_p.h')
-rw-r--r--src/corelib/io/qtemporaryfile_p.h14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/corelib/io/qtemporaryfile_p.h b/src/corelib/io/qtemporaryfile_p.h
index 475298f264..2d4468fcf8 100644
--- a/src/corelib/io/qtemporaryfile_p.h
+++ b/src/corelib/io/qtemporaryfile_p.h
@@ -64,6 +64,7 @@ protected:
~QTemporaryFilePrivate();
QAbstractFileEngine *engine() const;
+ void resetFileEngine() const;
bool autoRemove;
QString templateName;
@@ -77,22 +78,17 @@ class QTemporaryFileEngine : public QFSFileEngine
{
Q_DECLARE_PRIVATE(QFSFileEngine)
public:
-
- QTemporaryFileEngine(const QString &file,
- quint32 fileMode,
- bool fileIsTemplate = true) :
- QFSFileEngine(),
- fileMode(fileMode),
- filePathIsTemplate(fileIsTemplate),
- filePathWasTemplate(fileIsTemplate)
+ void initialize(const QString &file, quint32 mode, bool nameIsTemplate = true)
{
Q_D(QFSFileEngine);
+ Q_ASSERT(!isReallyOpen());
+ fileMode = mode;
+ filePathIsTemplate = filePathWasTemplate = nameIsTemplate;
d->fileEntry = QFileSystemEntry(file);
if (!filePathIsTemplate)
QFSFileEngine::setFileName(file);
}
-
~QTemporaryFileEngine();
bool isReallyOpen();