diff options
Diffstat (limited to 'libqpdf/QPDFJob.cc')
-rw-r--r-- | libqpdf/QPDFJob.cc | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc index f1b35f56..7bd563aa 100644 --- a/libqpdf/QPDFJob.cc +++ b/libqpdf/QPDFJob.cc @@ -223,7 +223,7 @@ ImageOptimizer::evaluate(std::string const& description) Pl_Discard d; Pl_Count c("count", &d); std::shared_ptr<Pipeline> p = makePipeline(description, &c); - if (p.get() == nullptr) { + if (p == nullptr) { // message issued by makePipeline return false; } @@ -252,7 +252,7 @@ void ImageOptimizer::provideStreamData(QPDFObjGen const&, Pipeline* pipeline) { std::shared_ptr<Pipeline> p = makePipeline("", pipeline); - if (p.get() == nullptr) { + if (p == nullptr) { // Should not be possible image.warnIfPossible("unable to create pipeline after previous" " success; image data will be lost"); @@ -417,7 +417,8 @@ QPDFJob::Members::Members() : check_is_encrypted(false), check_requires_password(false), json_input(false), - json_output(false) + json_output(false), + report_mem_usage(false) { } @@ -625,6 +626,14 @@ QPDFJob::run() << ": operation succeeded with warnings\n"; } } + if (m->report_mem_usage) { + // Call get_max_memory_usage before generating output. When + // debugging, it's easier if print statements from + // get_max_memory_usage are not interleaved with the output. + auto mem_usage = QUtil::get_max_memory_usage(); + *this->m->log->getWarn() + << "qpdf-max-memory-usage " << mem_usage << "\n"; + } } bool @@ -2161,7 +2170,7 @@ QPDFJob::doUnderOverlayForPage( std::map<unsigned long long, std::shared_ptr<QPDFAcroFormDocumentHelper>> afdh; auto make_afdh = [&](QPDFPageObjectHelper& ph) { - QPDF* q = ph.getObjectHandle().getOwningQPDF(); + QPDF* q = ph.getObjectHandle().getOwningQPDF(false); return get_afdh_for_qpdf(afdh, q); }; auto dest_afdh = make_afdh(dest_page); @@ -2243,8 +2252,7 @@ QPDFJob::handleUnderOverlay(QPDF& pdf) { validateUnderOverlay(pdf, &m->underlay); validateUnderOverlay(pdf, &m->overlay); - if ((nullptr == m->underlay.pdf.get()) && - (nullptr == m->overlay.pdf.get())) { + if ((nullptr == m->underlay.pdf) && (nullptr == m->overlay.pdf)) { return; } std::map<int, std::vector<int>> underlay_pagenos; @@ -2598,7 +2606,7 @@ static QPDFObjectHandle added_page(QPDF& pdf, QPDFObjectHandle page) { QPDFObjectHandle result = page; - if (page.getOwningQPDF() != &pdf) { + if (page.getOwningQPDF(false) != &pdf) { // Calling copyForeignObject on an object we already copied // will give us the already existing copy. result = pdf.copyForeignObject(page); |