summaryrefslogtreecommitdiffstats
path: root/src/corelib/io
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-02-08 15:48:29 +0100
committerLiang Qi <liang.qi@qt.io>2017-02-08 15:49:18 +0100
commitdd756011da13b95fdb630a1bbb90234f1e60f415 (patch)
treea6259b1e9b6463108796ce912e3d1752e301505f /src/corelib/io
parent0c50edbe84914469973a3b10e0170023ccdd66fe (diff)
parentb6bf2a33f4c33a212da7b58a049b3b5b20b3f327 (diff)
Merge remote-tracking branch 'origin/5.8' into 5.9
Conflicts: configure.json mkspecs/win32-icc/qmake.conf Change-Id: Ibf40546b024d644c7d9ed490bee15b82597f4d3f
Diffstat (limited to 'src/corelib/io')
-rw-r--r--src/corelib/io/qfiledevice.cpp3
-rw-r--r--src/corelib/io/qsettings_mac.cpp4
2 files changed, 6 insertions, 1 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();
diff --git a/src/corelib/io/qsettings_mac.cpp b/src/corelib/io/qsettings_mac.cpp
index dcaefd1613..e4631bad12 100644
--- a/src/corelib/io/qsettings_mac.cpp
+++ b/src/corelib/io/qsettings_mac.cpp
@@ -269,8 +269,10 @@ static QVariant qtValue(CFPropertyListRef cfvalue)
// Fast-path for QByteArray, so that we don't have to go
// though the expensive and lossy conversion via UTF-8.
- if (!byteArray.startsWith('@'))
+ if (!byteArray.startsWith('@')) {
+ byteArray.detach();
return byteArray;
+ }
const QString str = QString::fromUtf8(byteArray.constData(), byteArray.size());
return QSettingsPrivate::stringToVariant(str);