diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2017-01-11 13:29:12 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2017-03-31 21:08:54 +0000 |
commit | 580156e555cd6948f00028faf772e4a886132a8b (patch) | |
tree | d21fd3f2a6cde9ef61a23212ba21928ad099623e /src/corelib/io/qfile.cpp | |
parent | 6ba8708a2fdec666172446783a7ff292cd454055 (diff) |
Simplify QFSFileEngine code: QFile does not require buffering
We still support buffering via stdio.h (FILE*), but QFSFileEngine itself
is not responsible for the buffering. Opening by file name (not FILE*
and not file descriptor) already added the Unbuffered flag.
Change-Id: I2bc52f3c7a574209b213fffd1498d4e3f78fe1bf
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/io/qfile.cpp')
-rw-r--r-- | src/corelib/io/qfile.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/corelib/io/qfile.cpp b/src/corelib/io/qfile.cpp index 6249d54f7d..c19cb92715 100644 --- a/src/corelib/io/qfile.cpp +++ b/src/corelib/io/qfile.cpp @@ -956,7 +956,9 @@ bool QFile::open(FILE *fh, OpenMode mode, FileHandleFlags handleFlags) qWarning("QFile::open: File access not specified"); return false; } - if (d->openExternalFile(mode, fh, handleFlags)) { + + // QIODevice provides the buffering, so request unbuffered file engines + if (d->openExternalFile(mode | Unbuffered, fh, handleFlags)) { QIODevice::open(mode); if (!(mode & Append) && !isSequential()) { qint64 pos = (qint64)QT_FTELL(fh); @@ -1012,7 +1014,9 @@ bool QFile::open(int fd, OpenMode mode, FileHandleFlags handleFlags) qWarning("QFile::open: File access not specified"); return false; } - if (d->openExternalFile(mode, fd, handleFlags)) { + + // QIODevice provides the buffering, so request unbuffered file engines + if (d->openExternalFile(mode | Unbuffered, fd, handleFlags)) { QIODevice::open(mode); if (!(mode & Append) && !isSequential()) { qint64 pos = (qint64)QT_LSEEK(fd, QT_OFF_T(0), SEEK_CUR); |