diff options
author | David Faure <david.faure@kdab.com> | 2024-04-22 18:32:25 +0200 |
---|---|---|
committer | David Faure <david.faure@kdab.com> | 2024-04-26 18:19:39 +0200 |
commit | ba2f7945965d9d84d802ab0bda04664229209d3f (patch) | |
tree | 5eb8d9a1690ec740f9ecbd02238f1ac58ce0a441 /src/corelib | |
parent | a3d50112e44bc42b310d9d3a8e6c7805ef31ef53 (diff) |
QSaveFile: don't reset fileEngine after commit()
[ChangeLog][QtCore][QSaveFile] Member functions such as fileTime() and
size() now continue to work after commit().
Fixes: QTBUG-66605
Fixes: QTBUG-77039
Change-Id: I0b17eae9493911d1a0828b589d762bd8eb344bce
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/io/qsavefile.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/corelib/io/qsavefile.cpp b/src/corelib/io/qsavefile.cpp index 6d8918c29c..cc59bb3725 100644 --- a/src/corelib/io/qsavefile.cpp +++ b/src/corelib/io/qsavefile.cpp @@ -113,10 +113,10 @@ QSaveFile::QSaveFile(const QString &name, QObject *parent) QSaveFile::~QSaveFile() { Q_D(QSaveFile); - QFileDevice::close(); - if (d->fileEngine) { + if (isOpen()) { + QFileDevice::close(); + Q_ASSERT(d->fileEngine); d->fileEngine->remove(); - d->fileEngine.reset(); } } @@ -298,7 +298,7 @@ bool QSaveFile::commit() } QFileDevice::close(); // calls flush() - const auto fe = std::move(d->fileEngine); + const auto &fe = d->fileEngine; // Sync to disk if possible. Ignore errors (e.g. not supported). fe->syncToDisk(); |