Commit c9b54e3c087ee2a8bb49cb2121e0d6444f4aaad0
1 parent
7e623fd9
Refactor `QPDFWriter` construction to use `std::make_shared`.
Showing
3 changed files
with
21 additions
and
23 deletions
libqpdf/NNTree.cc
| ... | ... | @@ -666,7 +666,7 @@ NNTreeImpl::repair() |
| 666 | 666 | NNTreeImpl repl(qpdf, new_node, key_type, value_valid, false); |
| 667 | 667 | std::map<QPDFObjectHandle, QPDFObjectHandle, Cmp> items; |
| 668 | 668 | for (auto const& [key, value]: *this) { |
| 669 | - if (key && value && repl.keyValid(key) && repl.value_valid(value) ) { | |
| 669 | + if (key && value && repl.keyValid(key) && repl.value_valid(value)) { | |
| 670 | 670 | items.insert_or_assign(key, value); |
| 671 | 671 | } |
| 672 | 672 | } | ... | ... |
libqpdf/QPDFWriter.cc
| ... | ... | @@ -265,12 +265,25 @@ class QPDFWriter::Members |
| 265 | 265 | friend class QPDFWriter; |
| 266 | 266 | |
| 267 | 267 | public: |
| 268 | - ~Members(); | |
| 268 | + Members(QPDF& pdf) : | |
| 269 | + pdf(pdf), | |
| 270 | + root_og( | |
| 271 | + pdf.getRoot().getObjGen().isIndirect() ? pdf.getRoot().getObjGen() : QPDFObjGen(-1, 0)), | |
| 272 | + pipeline_stack(pipeline) | |
| 273 | + { | |
| 274 | + } | |
| 269 | 275 | |
| 270 | - private: | |
| 271 | - Members(QPDF& pdf); | |
| 272 | 276 | Members(Members const&) = delete; |
| 273 | 277 | |
| 278 | + ~Members() | |
| 279 | + { | |
| 280 | + if (file && close_file) { | |
| 281 | + fclose(file); | |
| 282 | + } | |
| 283 | + delete output_buffer; | |
| 284 | + } | |
| 285 | + | |
| 286 | + private: | |
| 274 | 287 | QPDF& pdf; |
| 275 | 288 | QPDFObjGen root_og{-1, 0}; |
| 276 | 289 | char const* filename{"unspecified"}; |
| ... | ... | @@ -341,34 +354,19 @@ class QPDFWriter::Members |
| 341 | 354 | int next_progress_report{0}; |
| 342 | 355 | }; |
| 343 | 356 | |
| 344 | -QPDFWriter::Members::Members(QPDF& pdf) : | |
| 345 | - pdf(pdf), | |
| 346 | - root_og(pdf.getRoot().getObjGen().isIndirect() ? pdf.getRoot().getObjGen() : QPDFObjGen(-1, 0)), | |
| 347 | - pipeline_stack(pipeline) | |
| 348 | -{ | |
| 349 | -} | |
| 350 | - | |
| 351 | -QPDFWriter::Members::~Members() | |
| 352 | -{ | |
| 353 | - if (file && close_file) { | |
| 354 | - fclose(file); | |
| 355 | - } | |
| 356 | - delete output_buffer; | |
| 357 | -} | |
| 358 | - | |
| 359 | 357 | QPDFWriter::QPDFWriter(QPDF& pdf) : |
| 360 | - m(new Members(pdf)) | |
| 358 | + m(std::make_shared<Members>(pdf)) | |
| 361 | 359 | { |
| 362 | 360 | } |
| 363 | 361 | |
| 364 | 362 | QPDFWriter::QPDFWriter(QPDF& pdf, char const* filename) : |
| 365 | - m(new Members(pdf)) | |
| 363 | + m(std::make_shared<Members>(pdf)) | |
| 366 | 364 | { |
| 367 | 365 | setOutputFilename(filename); |
| 368 | 366 | } |
| 369 | 367 | |
| 370 | 368 | QPDFWriter::QPDFWriter(QPDF& pdf, char const* description, FILE* file, bool close_file) : |
| 371 | - m(new Members(pdf)) | |
| 369 | + m(std::make_shared<Members>(pdf)) | |
| 372 | 370 | { |
| 373 | 371 | setOutputFile(description, file, close_file); |
| 374 | 372 | } | ... | ... |
qpdf/test_driver.cc
| ... | ... | @@ -2624,7 +2624,7 @@ test_76(QPDF& pdf, char const* arg2) |
| 2624 | 2624 | { |
| 2625 | 2625 | // Embedded files. arg2 is a file to attach. Hard-code the |
| 2626 | 2626 | // mime type and file name for test purposes. |
| 2627 | - auto &efdh = QPDFEmbeddedFileDocumentHelper::get(pdf); | |
| 2627 | + auto& efdh = QPDFEmbeddedFileDocumentHelper::get(pdf); | |
| 2628 | 2628 | auto fs1 = QPDFFileSpecObjectHelper::createFileSpec(pdf, "att1.txt", arg2); |
| 2629 | 2629 | fs1.setDescription("some text"); |
| 2630 | 2630 | auto efs1 = QPDFEFStreamObjectHelper(fs1.getEmbeddedFileStream()); | ... | ... |