Commit 634d9249866de10ae60b7261fe03203fe6b04974
1 parent
2bb9e06d
In QPDFWriter::willFilterStream remember unfilterable streams
Showing
1 changed file
with
4 additions
and
3 deletions
libqpdf/QPDFWriter.cc
| @@ -1236,8 +1236,8 @@ QPDFWriter::writeTrailer( | @@ -1236,8 +1236,8 @@ QPDFWriter::writeTrailer( | ||
| 1236 | bool | 1236 | bool |
| 1237 | QPDFWriter::willFilterStream( | 1237 | QPDFWriter::willFilterStream( |
| 1238 | QPDFObjectHandle stream, | 1238 | QPDFObjectHandle stream, |
| 1239 | - bool& compress_stream, | ||
| 1240 | - bool& is_metadata, | 1239 | + bool& compress_stream, // out only |
| 1240 | + bool& is_metadata, // out only | ||
| 1241 | std::shared_ptr<Buffer>* stream_data) | 1241 | std::shared_ptr<Buffer>* stream_data) |
| 1242 | { | 1242 | { |
| 1243 | compress_stream = false; | 1243 | compress_stream = false; |
| @@ -1299,9 +1299,10 @@ QPDFWriter::willFilterStream( | @@ -1299,9 +1299,10 @@ QPDFWriter::willFilterStream( | ||
| 1299 | throw std::runtime_error( | 1299 | throw std::runtime_error( |
| 1300 | "error while getting stream data for " + stream.unparse() + ": " + e.what()); | 1300 | "error while getting stream data for " + stream.unparse() + ": " + e.what()); |
| 1301 | } | 1301 | } |
| 1302 | - if (filter && (!filtered)) { | 1302 | + if (filter && !filtered) { |
| 1303 | // Try again | 1303 | // Try again |
| 1304 | filter = false; | 1304 | filter = false; |
| 1305 | + stream.setFilterOnWrite(false); | ||
| 1305 | } else { | 1306 | } else { |
| 1306 | break; | 1307 | break; |
| 1307 | } | 1308 | } |