mirror of
https://github.com/qpdf/qpdf.git
synced 2025-02-14 09:40:22 +00:00
Code tidy QPDFWriter::willFilterStream
This commit is contained in:
parent
018cf0eb54
commit
642a1110ed
@ -1249,7 +1249,7 @@ QPDFWriter::willFilterStream(
|
||||
if (stream_dict.isDictionaryOfType("/Metadata")) {
|
||||
is_metadata = true;
|
||||
}
|
||||
bool filter = (stream.isDataModified() || m->compress_streams || m->stream_decode_level);
|
||||
bool filter = stream.isDataModified() || m->compress_streams || m->stream_decode_level;
|
||||
bool filter_on_write = stream.getFilterOnWrite();
|
||||
if (!filter_on_write) {
|
||||
QTC::TC("qpdf", "QPDFWriter getFilterOnWrite false");
|
||||
@ -1261,15 +1261,15 @@ QPDFWriter::willFilterStream(
|
||||
// CPU cycles uncompressing and recompressing stuff. This can be overridden with
|
||||
// setRecompressFlate(true).
|
||||
QPDFObjectHandle filter_obj = stream_dict.getKey("/Filter");
|
||||
if ((!m->recompress_flate) && (!stream.isDataModified()) && filter_obj.isName() &&
|
||||
((filter_obj.getName() == "/FlateDecode") || (filter_obj.getName() == "/Fl"))) {
|
||||
if (!m->recompress_flate && !stream.isDataModified() && filter_obj.isName() &&
|
||||
(filter_obj.getName() == "/FlateDecode" || filter_obj.getName() == "/Fl")) {
|
||||
QTC::TC("qpdf", "QPDFWriter not recompressing /FlateDecode");
|
||||
filter = false;
|
||||
}
|
||||
}
|
||||
bool normalize = false;
|
||||
bool uncompress = false;
|
||||
if (filter_on_write && is_metadata && ((!m->encrypted) || (m->encrypt_metadata == false))) {
|
||||
if (filter_on_write && is_metadata && (!m->encrypted || !m->encrypt_metadata)) {
|
||||
QTC::TC("qpdf", "QPDFWriter not compressing metadata");
|
||||
filter = true;
|
||||
compress_stream = false;
|
||||
@ -1283,18 +1283,19 @@ QPDFWriter::willFilterStream(
|
||||
}
|
||||
|
||||
bool filtered = false;
|
||||
for (int attempt = 1; attempt <= 2; ++attempt) {
|
||||
for (bool first_attempt: {true, false}) {
|
||||
pushPipeline(new Pl_Buffer("stream data"));
|
||||
PipelinePopper pp_stream_data(this, stream_data);
|
||||
activatePipelineStack(pp_stream_data);
|
||||
try {
|
||||
filtered = stream.pipeStreamData(
|
||||
m->pipeline,
|
||||
(((filter && normalize) ? qpdf_ef_normalize : 0) |
|
||||
((filter && compress_stream) ? qpdf_ef_compress : 0)),
|
||||
(filter ? (uncompress ? qpdf_dl_all : m->stream_decode_level) : qpdf_dl_none),
|
||||
!filter ? 0
|
||||
: ((normalize ? qpdf_ef_normalize : 0) |
|
||||
(compress_stream ? qpdf_ef_compress : 0)),
|
||||
!filter ? qpdf_dl_none : (uncompress ? qpdf_dl_all : m->stream_decode_level),
|
||||
false,
|
||||
(attempt == 1));
|
||||
first_attempt);
|
||||
} catch (std::runtime_error& e) {
|
||||
throw std::runtime_error(
|
||||
"error while getting stream data for " + stream.unparse() + ": " + e.what());
|
||||
|
Loading…
x
Reference in New Issue
Block a user