From df2f5c6a360bd7512d2280aa9cb582bc0aa622bd Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Mon, 7 Feb 2022 08:02:16 -0500 Subject: Add QUtil::make_shared_array to help with PointerHolder transition --- libqpdf/QPDFArgParser.cc | 10 ++++------ libqpdf/QUtil.cc | 4 +--- 2 files changed, 5 insertions(+), 9 deletions(-) (limited to 'libqpdf') diff --git a/libqpdf/QPDFArgParser.cc b/libqpdf/QPDFArgParser.cc index b1658fea..9ddb120c 100644 --- a/libqpdf/QPDFArgParser.cc +++ b/libqpdf/QPDFArgParser.cc @@ -299,9 +299,8 @@ QPDFArgParser::handleArgFileArguments() QUtil::make_shared_cstr(this->m->argv[i])); } } - this->m->argv_ph = std::shared_ptr( - new char const*[1 + this->m->new_argv.size()], - std::default_delete()); + this->m->argv_ph = QUtil::make_shared_array( + 1 + this->m->new_argv.size()); for (size_t i = 0; i < this->m->new_argv.size(); ++i) { this->m->argv_ph.get()[i] = this->m->new_argv.at(i).get(); @@ -404,9 +403,8 @@ QPDFArgParser::handleBashArguments() } // Explicitly discard any non-space-terminated word. The "current // word" is handled specially. - this->m->bash_argv_ph = std::shared_ptr( - new char const*[1 + this->m->bash_argv.size()], - std::default_delete()); + this->m->bash_argv_ph = QUtil::make_shared_array( + 1 + this->m->bash_argv.size()); for (size_t i = 0; i < this->m->bash_argv.size(); ++i) { this->m->bash_argv_ph.get()[i] = this->m->bash_argv.at(i).get(); diff --git a/libqpdf/QUtil.cc b/libqpdf/QUtil.cc index 503d79f9..1f179fd5 100644 --- a/libqpdf/QUtil.cc +++ b/libqpdf/QUtil.cc @@ -735,9 +735,7 @@ QUtil::copy_string(std::string const& str) std::shared_ptr QUtil::make_shared_cstr(std::string const& str) { - auto result = std::shared_ptr( - new char[str.length() + 1], - std::default_delete()); + auto result = QUtil::make_shared_array(str.length() + 1); // Use memcpy in case string contains nulls result.get()[str.length()] = '\0'; memcpy(result.get(), str.c_str(), str.length()); -- cgit v1.2.3-54-g00ecf