diff options
author | Jay Berkenbilt <ejb@ql.org> | 2022-04-09 20:49:10 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2022-04-09 23:33:29 +0200 |
commit | ba0ef7a124e9aecc2d0113598c851bae4710b887 (patch) | |
tree | 5dec35b3d51effc43e55ff3ba0b1ca3f274eea17 /qpdf | |
parent | a68703b07e928be0eeb909c0e777e13e88cbf86d (diff) | |
download | qpdf-ba0ef7a124e9aecc2d0113598c851bae4710b887.tar.zst |
Replace PointerHolder with std::shared_ptr in the rest of the code
Increase to POINTERHOLDER_TRANSITION=3
patrepl s/PointerHolder/std::shared_ptr/g **/*.cc **/*.hh
patrepl s/make_pointer_holder/std::make_shared/g **/*.cc
patrepl s/make_array_pointer_holder/QUtil::make_shared_array/g **/*.cc
patrepl s,qpdf/std::shared_ptr,qpdf/PointerHolder, **/*.cc **/*.hh
git restore include/qpdf/PointerHolder.hh
git restore libtests/pointer_holder.cc
cleanpatch
./format-code
Diffstat (limited to 'qpdf')
-rw-r--r-- | qpdf/test_driver.cc | 47 | ||||
-rw-r--r-- | qpdf/test_large_file.cc | 4 | ||||
-rw-r--r-- | qpdf/test_tokenizer.cc | 18 |
3 files changed, 34 insertions, 35 deletions
diff --git a/qpdf/test_driver.cc b/qpdf/test_driver.cc index c697bdc9..8a93721f 100644 --- a/qpdf/test_driver.cc +++ b/qpdf/test_driver.cc @@ -49,7 +49,7 @@ usage() class Provider: public QPDFObjectHandle::StreamDataProvider { public: - Provider(PointerHolder<Buffer> b) : + Provider(std::shared_ptr<Buffer> b) : b(b), bad_length(false) { @@ -74,7 +74,7 @@ class Provider: public QPDFObjectHandle::StreamDataProvider } private: - PointerHolder<Buffer> b; + std::shared_ptr<Buffer> b; bool bad_length; }; @@ -151,7 +151,7 @@ class TokenFilter: public QPDFObjectHandle::TokenFilter static std::string getPageContents(QPDFObjectHandle page) { - PointerHolder<Buffer> b1 = page.getKey("/Contents").getStreamData(); + std::shared_ptr<Buffer> b1 = page.getKey("/Contents").getStreamData(); return std::string( reinterpret_cast<char*>(b1->getBuffer()), b1->getSize()) + "\0"; @@ -271,14 +271,14 @@ test_0_1(QPDF& pdf, char const* arg2) std::cout << "Raw stream data:" << std::endl; std::cout.flush(); QUtil::binary_stdout(); - auto out = make_pointer_holder<Pl_StdioFile>("raw", stdout); + auto out = std::make_shared<Pl_StdioFile>("raw", stdout); qtest.pipeStreamData(out.get(), 0, qpdf_dl_none); std::cout << std::endl << "Uncompressed stream data:" << std::endl; if (qtest.pipeStreamData(0, 0, qpdf_dl_all)) { std::cout.flush(); QUtil::binary_stdout(); - out = make_pointer_holder<Pl_StdioFile>("filtered", stdout); + out = std::make_shared<Pl_StdioFile>("filtered", stdout); qtest.pipeStreamData(out.get(), 0, qpdf_dl_all); std::cout << std::endl << "End of stream data" << std::endl; } else { @@ -316,7 +316,7 @@ test_2(QPDF& pdf, char const* arg2) QPDFObjectHandle page = kids.getArrayItem(1); // second page QPDFObjectHandle contents = page.getKey("/Contents"); QUtil::binary_stdout(); - auto out = make_pointer_holder<Pl_StdioFile>("filtered", stdout); + auto out = std::make_shared<Pl_StdioFile>("filtered", stdout); contents.pipeStreamData(out.get(), 0, qpdf_dl_generalized); } @@ -329,8 +329,7 @@ test_3(QPDF& pdf, char const* arg2) std::cout << "-- stream " << i << " --" << std::endl; std::cout.flush(); QUtil::binary_stdout(); - auto out = - make_pointer_holder<Pl_StdioFile>("tokenized stream", stdout); + auto out = std::make_shared<Pl_StdioFile>("tokenized stream", stdout); stream.pipeStreamData( out.get(), qpdf_ef_normalize, qpdf_dl_generalized); } @@ -503,7 +502,7 @@ test_8(QPDF& pdf, char const* arg2) // This is a bogus way to use StreamDataProvider, but it does // adequately test its functionality. Provider* provider = new Provider(b); - auto p = PointerHolder<QPDFObjectHandle::StreamDataProvider>(provider); + auto p = std::shared_ptr<QPDFObjectHandle::StreamDataProvider>(provider); qstream.replaceStreamData( p, QPDFObjectHandle::newName("/FlateDecode"), @@ -532,7 +531,7 @@ test_9(QPDF& pdf, char const* arg2) { QPDFObjectHandle root = pdf.getRoot(); // Explicitly exercise the Buffer version of newStream - auto buf = make_pointer_holder<Buffer>(20U); + auto buf = std::make_shared<Buffer>(20U); unsigned char* bp = buf->getBuffer(); memcpy(bp, "data for new stream\n", 20); // no null! QPDFObjectHandle qstream = QPDFObjectHandle::newStream(&pdf, buf); @@ -581,8 +580,8 @@ test_11(QPDF& pdf, char const* arg2) { QPDFObjectHandle root = pdf.getRoot(); QPDFObjectHandle qstream = root.getKey("/QStream"); - PointerHolder<Buffer> b1 = qstream.getStreamData(); - PointerHolder<Buffer> b2 = qstream.getRawStreamData(); + std::shared_ptr<Buffer> b1 = qstream.getStreamData(); + std::shared_ptr<Buffer> b2 = qstream.getRawStreamData(); if ((b1->getSize() == 7) && (memcmp(b1->getBuffer(), "potato\n", 7) == 0)) { std::cout << "filtered stream data okay" << std::endl; } @@ -815,7 +814,7 @@ test_17(QPDF& pdf, char const* arg2) QPDFObjectHandle(pages.at(1)).getKey("/Contents").getObjGen()); pdf.removePage(pages.at(0)); assert(pages.size() == 2); - PointerHolder<Buffer> b = + std::shared_ptr<Buffer> b = QPDFObjectHandle(pages.at(0)).getKey("/Contents").getStreamData(); std::string contents = std::string( reinterpret_cast<char const*>(b->getBuffer()), b->getSize()); @@ -1039,7 +1038,7 @@ test_27(QPDF& pdf, char const* arg2) // also exercise setImmediateCopyFrom. // Create a provider. The provider stays in scope. - PointerHolder<QPDFObjectHandle::StreamDataProvider> p1; + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> p1; { // Local scope Pl_Buffer pl("buffer"); @@ -1065,7 +1064,7 @@ test_27(QPDF& pdf, char const* arg2) // Make sure some source PDFs are out of scope when we // write. - PointerHolder<QPDFObjectHandle::StreamDataProvider> p2; + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> p2; // Create another provider. This one will go out of scope // along with its containing qpdf, which has // setImmediateCopyFrom(true). @@ -1266,7 +1265,7 @@ test_35(QPDF& pdf, char const* arg2) { // Extract attachments - std::map<std::string, PointerHolder<Buffer>> attachments; + std::map<std::string, std::shared_ptr<Buffer>> attachments; QPDFObjectHandle root = pdf.getRoot(); QPDFObjectHandle names = root.getKey("/Names"); QPDFObjectHandle embeddedFiles = names.getKey("/EmbeddedFiles"); @@ -1282,7 +1281,7 @@ test_35(QPDF& pdf, char const* arg2) attachments[filename] = stream.getStreamData(); } } - for (std::map<std::string, PointerHolder<Buffer>>::iterator iter = + for (std::map<std::string, std::shared_ptr<Buffer>>::iterator iter = attachments.begin(); iter != attachments.end(); ++iter) { @@ -1421,7 +1420,7 @@ test_41(QPDF& pdf, char const* arg2) iter != pages.end(); ++iter) { (*iter).addContentTokenFilter( - PointerHolder<QPDFObjectHandle::TokenFilter>(new TokenFilter())); + std::shared_ptr<QPDFObjectHandle::TokenFilter>(new TokenFilter())); } QPDFWriter w(pdf, "a.pdf"); w.setQDFMode(true); @@ -2468,12 +2467,12 @@ test_68(QPDF& pdf, char const* arg2) } catch (std::exception& e) { std::cout << "get unfilterable stream: " << e.what() << std::endl; } - PointerHolder<Buffer> b1 = qstream.getStreamData(qpdf_dl_all); + std::shared_ptr<Buffer> b1 = qstream.getStreamData(qpdf_dl_all); if ((b1->getSize() > 10) && (memcmp(b1->getBuffer(), "wwwwwwwww", 9) == 0)) { std::cout << "filtered stream data okay" << std::endl; } - PointerHolder<Buffer> b2 = qstream.getRawStreamData(); + std::shared_ptr<Buffer> b2 = qstream.getRawStreamData(); if ((b2->getSize() > 10) && (memcmp( b2->getBuffer(), "\xff\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46", 10) == @@ -2578,11 +2577,11 @@ test_72(QPDF& pdf, char const* arg2) Pl_Buffer b("buffer"); if (i == 0) { fx1.addContentTokenFilter( - PointerHolder<QPDFObjectHandle::TokenFilter>( + std::shared_ptr<QPDFObjectHandle::TokenFilter>( new TokenFilter())); } else { fx1.getObjectHandle().addTokenFilter( - PointerHolder<QPDFObjectHandle::TokenFilter>( + std::shared_ptr<QPDFObjectHandle::TokenFilter>( new TokenFilter())); } fx1.pipeContents(&b); @@ -2999,7 +2998,7 @@ test_83(QPDF& pdf, char const* arg2) // partial = true, we just use qpdf --job-json-file. QPDFJob j; - PointerHolder<char> file_buf; + std::shared_ptr<char> file_buf; size_t size; QUtil::read_file_into_memory(arg2, file_buf, size); try { @@ -3201,7 +3200,7 @@ runtest(int n, char const* filename1, char const* arg2) } QPDF pdf; - PointerHolder<char> file_buf; + std::shared_ptr<char> file_buf; FILE* filep = 0; if (n == 0) { pdf.setAttemptRecovery(false); diff --git a/qpdf/test_large_file.cc b/qpdf/test_large_file.cc index 0a81dcc7..24fc9e11 100644 --- a/qpdf/test_large_file.cc +++ b/qpdf/test_large_file.cc @@ -231,7 +231,7 @@ create_pdf(char const* filename) image_dict.replaceKey("/Width", newInteger(width)); image_dict.replaceKey("/Height", newInteger(height)); ImageProvider* p = new ImageProvider(pageno); - PointerHolder<QPDFObjectHandle::StreamDataProvider> provider(p); + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> provider(p); image.replaceStreamData( provider, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); @@ -265,7 +265,7 @@ create_pdf(char const* filename) static void check_page_contents(size_t pageno, QPDFObjectHandle page) { - PointerHolder<Buffer> buf = page.getKey("/Contents").getStreamData(); + std::shared_ptr<Buffer> buf = page.getKey("/Contents").getStreamData(); std::string actual_contents = std::string(reinterpret_cast<char*>(buf->getBuffer()), buf->getSize()); std::string expected_contents = generate_page_contents(pageno); diff --git a/qpdf/test_tokenizer.cc b/qpdf/test_tokenizer.cc index c609d848..5b99888c 100644 --- a/qpdf/test_tokenizer.cc +++ b/qpdf/test_tokenizer.cc @@ -25,7 +25,7 @@ usage() class Finder: public InputSource::Finder { public: - Finder(PointerHolder<InputSource> is, std::string const& str) : + Finder(std::shared_ptr<InputSource> is, std::string const& str) : is(is), str(str) { @@ -36,7 +36,7 @@ class Finder: public InputSource::Finder virtual bool check(); private: - PointerHolder<InputSource> is; + std::shared_ptr<InputSource> is; std::string str; }; @@ -117,7 +117,7 @@ sanitize(std::string const& value) static void try_skipping( QPDFTokenizer& tokenizer, - PointerHolder<InputSource> is, + std::shared_ptr<InputSource> is, size_t max_len, char const* what, Finder& f) @@ -132,7 +132,7 @@ try_skipping( static void dump_tokens( - PointerHolder<InputSource> is, + std::shared_ptr<InputSource> is, std::string const& label, size_t max_len, bool include_ignorable, @@ -191,12 +191,12 @@ dump_tokens( static void process(char const* filename, bool include_ignorable, size_t max_len) { - PointerHolder<InputSource> is; + std::shared_ptr<InputSource> is; // Tokenize file, skipping streams FileInputSource* fis = new FileInputSource(); fis->setFilename(filename); - is = PointerHolder<InputSource>(fis); + is = std::shared_ptr<InputSource>(fis); dump_tokens(is, "FILE", max_len, include_ignorable, true, false); // Tokenize content streams, skipping inline images @@ -214,7 +214,7 @@ process(char const* filename, bool include_ignorable, size_t max_len) auto content_data = plb.getBufferSharedPointer(); BufferInputSource* bis = new BufferInputSource("content data", content_data.get()); - is = PointerHolder<InputSource>(bis); + is = std::shared_ptr<InputSource>(bis); dump_tokens( is, "PAGE " + QUtil::int_to_string(pageno), @@ -231,11 +231,11 @@ process(char const* filename, bool include_ignorable, size_t max_len) ++iter) { if ((*iter).isStream() && (*iter).getDict().getKey("/Type").isName() && (*iter).getDict().getKey("/Type").getName() == "/ObjStm") { - PointerHolder<Buffer> b = + std::shared_ptr<Buffer> b = (*iter).getStreamData(qpdf_dl_specialized); BufferInputSource* bis = new BufferInputSource("object stream data", b.get()); - is = PointerHolder<InputSource>(bis); + is = std::shared_ptr<InputSource>(bis); dump_tokens( is, "OBJECT STREAM " + QUtil::int_to_string((*iter).getObjectID()), |