Handle the situation where QTemporaryFile::open() fails
If open() fails then we should make sure we do not try to write to it and just return 0 in that case. Change-Id: I2980b65766b322efed6708fb10cc27567174dc37 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>bb10
parent
7789b77458
commit
28d0b987b7
|
|
@ -912,16 +912,20 @@ QTemporaryFile *QTemporaryFile::createNativeFile(QFile &file)
|
|||
file.open(QIODevice::ReadOnly);
|
||||
//dump data
|
||||
QTemporaryFile *ret = new QTemporaryFile;
|
||||
ret->open();
|
||||
file.seek(0);
|
||||
char buffer[1024];
|
||||
while(true) {
|
||||
qint64 len = file.read(buffer, 1024);
|
||||
if(len < 1)
|
||||
break;
|
||||
ret->write(buffer, len);
|
||||
if (ret->open()) {
|
||||
file.seek(0);
|
||||
char buffer[1024];
|
||||
while (true) {
|
||||
qint64 len = file.read(buffer, 1024);
|
||||
if (len < 1)
|
||||
break;
|
||||
ret->write(buffer, len);
|
||||
}
|
||||
ret->seek(0);
|
||||
} else {
|
||||
delete ret;
|
||||
ret = nullptr;
|
||||
}
|
||||
ret->seek(0);
|
||||
//restore
|
||||
if(wasOpen)
|
||||
file.seek(old_off);
|
||||
|
|
|
|||
Loading…
Reference in New Issue