summaryrefslogtreecommitdiffstats
path: root/src/gui/painting
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2024-03-22 17:31:00 +0100
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2024-04-04 13:21:12 +0100
commit7eb69e0f7a0ff874db5766fc8af039231977e6f0 (patch)
tree2bc846079897e737758fbd54e14c23a745420cc1 /src/gui/painting
parent90217f37caeb3102ddf728dd96378115a0769941 (diff)
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>
Diffstat (limited to 'src/gui/painting')
-rw-r--r--src/gui/painting/qpdf.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/gui/painting/qpdf.cpp b/src/gui/painting/qpdf.cpp
index a971c2aae1..eb80ace232 100644
--- a/src/gui/painting/qpdf.cpp
+++ b/src/gui/painting/qpdf.cpp
@@ -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);