diff options
author | Aleksey Lysenko <lysenkoalexmail@gmail.com> | 2017-01-30 22:55:57 +0200 |
---|---|---|
committer | Aleksey Lysenko <lysenkoalexmail@gmail.com> | 2017-02-06 07:36:24 +0000 |
commit | f53ab9d7363e2fb3b63cec1a00851f84f901de18 (patch) | |
tree | 0fc143df717e58e5d5cf7a01b86e813cee63c84e /src/corelib/io/qfiledevice.cpp | |
parent | 5923fb966d3d869b23f74bc43560b08921f4321b (diff) |
Reset QFileDevicePrivate::cachedSize on file close
When a QFile object is reused, the atEnd() method may return incorrect
values. The reason for this is that QFileDevicePrivate::cachedSize is
not cleared. Setting cachedSize = 0 in the close() method fixes this issue.
Task-number: QTBUG-57698
Change-Id: I828a2cf844e98d581098f2c781fa47d2cd3275ce
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/corelib/io/qfiledevice.cpp')
-rw-r--r-- | src/corelib/io/qfiledevice.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/corelib/io/qfiledevice.cpp b/src/corelib/io/qfiledevice.cpp index 20cfa5bdaf..ce9c8275ce 100644 --- a/src/corelib/io/qfiledevice.cpp +++ b/src/corelib/io/qfiledevice.cpp @@ -328,6 +328,9 @@ void QFileDevice::close() d->lastWasWrite = false; d->writeBuffer.clear(); + // reset cached size + d->cachedSize = 0; + // keep earlier error from flush if (d->fileEngine->close() && flushed) unsetError(); |