From 737c190dc6cfff8f2183d6e6815a606265a9cf2e Mon Sep 17 00:00:00 2001 From: m-holger Date: Thu, 17 Jul 2025 14:03:04 +0100 Subject: [PATCH] Refactor `QPDFWriter` to use `std::unique_ptr` for `m->to_delete` and `m->buffer_pipeline`. --- libqpdf/QPDFWriter.cc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index 6a24eaf..f285829 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -276,7 +276,7 @@ class QPDFWriter::Members char const* filename{"unspecified"}; FILE* file{nullptr}; bool close_file{false}; - Pl_Buffer* buffer_pipeline{nullptr}; + std::unique_ptr buffer_pipeline{nullptr}; Buffer* output_buffer{nullptr}; bool normalize_content_set{false}; bool normalize_content{false}; @@ -311,7 +311,7 @@ class QPDFWriter::Members std::string extra_header_text; int encryption_dict_objid{0}; std::string cur_data_key; - std::list> to_delete; + std::unique_ptr file_pl; qpdf::pl::Count* pipeline{nullptr}; std::vector object_queue; size_t object_queue_front{0}; @@ -398,18 +398,16 @@ QPDFWriter::setOutputFile(char const* description, FILE* file, bool close_file) m->filename = description; m->file = file; m->close_file = close_file; - std::shared_ptr p = std::make_shared("qpdf output", file); - m->to_delete.push_back(p); - m->pipeline_stack.initialize(p.get()); + m->file_pl = std::make_unique("qpdf output", file); + m->pipeline_stack.initialize(m->file_pl.get()); } void QPDFWriter::setOutputMemory() { m->filename = "memory buffer"; - m->buffer_pipeline = new Pl_Buffer("qpdf output"); - m->to_delete.push_back(std::shared_ptr(m->buffer_pipeline)); - m->pipeline_stack.initialize(m->buffer_pipeline); + m->buffer_pipeline = std::make_unique("qpdf output"); + m->pipeline_stack.initialize(m->buffer_pipeline.get()); } Buffer* -- libgit2 0.21.4