QPdf: do not switch to file-backed storage if we can't open it
In case creation of the QTemporaryFile fails, keep the data in memory. Change-Id: I9933571259a26ee990609010763a1ef57877338a Reviewed-by: Lars Knoll <lars@knoll.priv.no>bb10
parent
90217f37ca
commit
7eb69e0f7a
|
|
@ -279,16 +279,17 @@ namespace QPdf {
|
|||
&& size > maxMemorySize()) {
|
||||
// Switch to file backing.
|
||||
QTemporaryFile *newFile = new QTemporaryFile;
|
||||
newFile->open();
|
||||
dev->reset();
|
||||
while (!dev->atEnd()) {
|
||||
QByteArray buf = dev->read(chunkSize());
|
||||
newFile->write(buf);
|
||||
if (newFile->open()) {
|
||||
dev->reset();
|
||||
while (!dev->atEnd()) {
|
||||
QByteArray buf = dev->read(chunkSize());
|
||||
newFile->write(buf);
|
||||
}
|
||||
delete dev;
|
||||
dev = newFile;
|
||||
ba.clear();
|
||||
fileBackingActive = true;
|
||||
}
|
||||
delete dev;
|
||||
dev = newFile;
|
||||
ba.clear();
|
||||
fileBackingActive = true;
|
||||
}
|
||||
if (dev->pos() != size) {
|
||||
dev->seek(size);
|
||||
|
|
|
|||
Loading…
Reference in New Issue