Commit ba0ef7a124e9aecc2d0113598c851bae4710b887
1 parent
a68703b0
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
Showing
14 changed files
with
79 additions
and
79 deletions
CMakeLists.txt
| @@ -108,7 +108,7 @@ if(NOT (BUILD_STATIC_LIBS OR BUILD_SHARED_LIBS)) | @@ -108,7 +108,7 @@ if(NOT (BUILD_STATIC_LIBS OR BUILD_SHARED_LIBS)) | ||
| 108 | FATAL_ERROR "At least one of static or shared libraries must be built") | 108 | FATAL_ERROR "At least one of static or shared libraries must be built") |
| 109 | endif() | 109 | endif() |
| 110 | 110 | ||
| 111 | -add_compile_definitions($<$<COMPILE_LANGUAGE:CXX>:POINTERHOLDER_TRANSITION=2>) | 111 | +add_compile_definitions($<$<COMPILE_LANGUAGE:CXX>:POINTERHOLDER_TRANSITION=3>) |
| 112 | 112 | ||
| 113 | enable_testing() | 113 | enable_testing() |
| 114 | set(RUN_QTEST perl ${qpdf_SOURCE_DIR}/run-qtest) | 114 | set(RUN_QTEST perl ${qpdf_SOURCE_DIR}/run-qtest) |
examples/pdf-create.cc
| @@ -176,7 +176,7 @@ add_page( | @@ -176,7 +176,7 @@ add_page( | ||
| 176 | // with /FlateDecode if we don't provide any other form of | 176 | // with /FlateDecode if we don't provide any other form of |
| 177 | // compression. | 177 | // compression. |
| 178 | ImageProvider* p = new ImageProvider(color_space, filter); | 178 | ImageProvider* p = new ImageProvider(color_space, filter); |
| 179 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> provider(p); | 179 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> provider(p); |
| 180 | size_t width = p->getWidth(); | 180 | size_t width = p->getWidth(); |
| 181 | size_t height = p->getHeight(); | 181 | size_t height = p->getHeight(); |
| 182 | QPDFObjectHandle image = QPDFObjectHandle::newStream(&pdf); | 182 | QPDFObjectHandle image = QPDFObjectHandle::newStream(&pdf); |
| @@ -296,10 +296,10 @@ check( | @@ -296,10 +296,10 @@ check( | ||
| 296 | // Check image data | 296 | // Check image data |
| 297 | auto actual_data = image.getStreamData(qpdf_dl_all); | 297 | auto actual_data = image.getStreamData(qpdf_dl_all); |
| 298 | ImageProvider* p = new ImageProvider(desired_color_space, "null"); | 298 | ImageProvider* p = new ImageProvider(desired_color_space, "null"); |
| 299 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> provider(p); | 299 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> provider(p); |
| 300 | Pl_Buffer b_p("get image data"); | 300 | Pl_Buffer b_p("get image data"); |
| 301 | provider->provideStreamData(0, 0, &b_p); | 301 | provider->provideStreamData(0, 0, &b_p); |
| 302 | - PointerHolder<Buffer> desired_data(b_p.getBuffer()); | 302 | + std::shared_ptr<Buffer> desired_data(b_p.getBuffer()); |
| 303 | 303 | ||
| 304 | if (desired_data->getSize() != actual_data->getSize()) { | 304 | if (desired_data->getSize() != actual_data->getSize()) { |
| 305 | std::cout << "page " << pageno << ": image data length mismatch" | 305 | std::cout << "page " << pageno << ": image data length mismatch" |
examples/pdf-custom-filter.cc
| @@ -205,7 +205,7 @@ class StreamReplacer: public QPDFObjectHandle::StreamDataProvider | @@ -205,7 +205,7 @@ class StreamReplacer: public QPDFObjectHandle::StreamDataProvider | ||
| 205 | 205 | ||
| 206 | void registerStream( | 206 | void registerStream( |
| 207 | QPDFObjectHandle stream, | 207 | QPDFObjectHandle stream, |
| 208 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> self); | 208 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> self); |
| 209 | 209 | ||
| 210 | private: | 210 | private: |
| 211 | bool maybeReplace( | 211 | bool maybeReplace( |
| @@ -283,7 +283,7 @@ StreamReplacer::maybeReplace( | @@ -283,7 +283,7 @@ StreamReplacer::maybeReplace( | ||
| 283 | // make all its decisions from the stream dictionary. However, | 283 | // make all its decisions from the stream dictionary. However, |
| 284 | // it's a good idea to make sure we can retrieve the filtered data | 284 | // it's a good idea to make sure we can retrieve the filtered data |
| 285 | // if we are going to need it later. | 285 | // if we are going to need it later. |
| 286 | - PointerHolder<Buffer> out; | 286 | + std::shared_ptr<Buffer> out; |
| 287 | try { | 287 | try { |
| 288 | out = stream.getStreamData(); | 288 | out = stream.getStreamData(); |
| 289 | } catch (...) { | 289 | } catch (...) { |
| @@ -321,7 +321,7 @@ StreamReplacer::maybeReplace( | @@ -321,7 +321,7 @@ StreamReplacer::maybeReplace( | ||
| 321 | void | 321 | void |
| 322 | StreamReplacer::registerStream( | 322 | StreamReplacer::registerStream( |
| 323 | QPDFObjectHandle stream, | 323 | QPDFObjectHandle stream, |
| 324 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> self) | 324 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> self) |
| 325 | { | 325 | { |
| 326 | QPDFObjGen og(stream.getObjGen()); | 326 | QPDFObjGen og(stream.getObjGen()); |
| 327 | 327 | ||
| @@ -409,10 +409,10 @@ process( | @@ -409,10 +409,10 @@ process( | ||
| 409 | qpdf.processFile(infilename); | 409 | qpdf.processFile(infilename); |
| 410 | 410 | ||
| 411 | // Create a single StreamReplacer instance. The interface requires | 411 | // Create a single StreamReplacer instance. The interface requires |
| 412 | - // a PointerHolder in various places, so allocate a StreamReplacer | ||
| 413 | - // and stash it in a PointerHolder. | 412 | + // a std::shared_ptr in various places, so allocate a StreamReplacer |
| 413 | + // and stash it in a std::shared_ptr. | ||
| 414 | StreamReplacer* replacer = new StreamReplacer(&qpdf); | 414 | StreamReplacer* replacer = new StreamReplacer(&qpdf); |
| 415 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> p(replacer); | 415 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> p(replacer); |
| 416 | 416 | ||
| 417 | for (auto& o : qpdf.getAllObjects()) { | 417 | for (auto& o : qpdf.getAllObjects()) { |
| 418 | if (o.isStream()) { | 418 | if (o.isStream()) { |
examples/pdf-filter-tokens.cc
| @@ -207,10 +207,11 @@ main(int argc, char* argv[]) | @@ -207,10 +207,11 @@ main(int argc, char* argv[]) | ||
| 207 | // details. | 207 | // details. |
| 208 | QPDFPageObjectHelper& page(*iter); | 208 | QPDFPageObjectHelper& page(*iter); |
| 209 | page.addContentTokenFilter( | 209 | page.addContentTokenFilter( |
| 210 | - PointerHolder<QPDFObjectHandle::TokenFilter>( | 210 | + std::shared_ptr<QPDFObjectHandle::TokenFilter>( |
| 211 | new StringReverser)); | 211 | new StringReverser)); |
| 212 | page.addContentTokenFilter( | 212 | page.addContentTokenFilter( |
| 213 | - PointerHolder<QPDFObjectHandle::TokenFilter>(new ColorToGray)); | 213 | + std::shared_ptr<QPDFObjectHandle::TokenFilter>( |
| 214 | + new ColorToGray)); | ||
| 214 | } | 215 | } |
| 215 | 216 | ||
| 216 | QPDFWriter w(pdf, outfilename); | 217 | QPDFWriter w(pdf, outfilename); |
examples/pdf-invert-images.cc
| @@ -41,7 +41,7 @@ class ImageInverter: public QPDFObjectHandle::StreamDataProvider | @@ -41,7 +41,7 @@ class ImageInverter: public QPDFObjectHandle::StreamDataProvider | ||
| 41 | 41 | ||
| 42 | void registerImage( | 42 | void registerImage( |
| 43 | QPDFObjectHandle image, | 43 | QPDFObjectHandle image, |
| 44 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> self); | 44 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> self); |
| 45 | 45 | ||
| 46 | private: | 46 | private: |
| 47 | std::map<QPDFObjGen, QPDFObjectHandle> copied_images; | 47 | std::map<QPDFObjGen, QPDFObjectHandle> copied_images; |
| @@ -50,14 +50,14 @@ class ImageInverter: public QPDFObjectHandle::StreamDataProvider | @@ -50,14 +50,14 @@ class ImageInverter: public QPDFObjectHandle::StreamDataProvider | ||
| 50 | void | 50 | void |
| 51 | ImageInverter::registerImage( | 51 | ImageInverter::registerImage( |
| 52 | QPDFObjectHandle image, | 52 | QPDFObjectHandle image, |
| 53 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> self) | 53 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> self) |
| 54 | { | 54 | { |
| 55 | // replaceStreamData requires a pointer holder to the stream data | 55 | // replaceStreamData requires a pointer holder to the stream data |
| 56 | // provider, but there's no way for us to generate one ourselves, | 56 | // provider, but there's no way for us to generate one ourselves, |
| 57 | // so we have to have it handed to us. Don't be tempted to have | 57 | // so we have to have it handed to us. Don't be tempted to have |
| 58 | - // the class contain a PointerHolder to itself as a member. Doing | 58 | + // the class contain a std::shared_ptr to itself as a member. Doing |
| 59 | // this will prevent the class from ever being deleted since the | 59 | // this will prevent the class from ever being deleted since the |
| 60 | - // reference count will never drop to zero (and PointerHolder | 60 | + // reference count will never drop to zero (and std::shared_ptr |
| 61 | // doesn't have weak references). | 61 | // doesn't have weak references). |
| 62 | 62 | ||
| 63 | QPDFObjGen og(image.getObjGen()); | 63 | QPDFObjGen og(image.getObjGen()); |
| @@ -90,7 +90,7 @@ ImageInverter::provideStreamData(int objid, int generation, Pipeline* pipeline) | @@ -90,7 +90,7 @@ ImageInverter::provideStreamData(int objid, int generation, Pipeline* pipeline) | ||
| 90 | // image data. Then invert the image data and write the inverted | 90 | // image data. Then invert the image data and write the inverted |
| 91 | // data to the pipeline. | 91 | // data to the pipeline. |
| 92 | QPDFObjGen og(objid, generation); | 92 | QPDFObjGen og(objid, generation); |
| 93 | - PointerHolder<Buffer> data = | 93 | + std::shared_ptr<Buffer> data = |
| 94 | this->copied_images[og].getStreamData(qpdf_dl_all); | 94 | this->copied_images[og].getStreamData(qpdf_dl_all); |
| 95 | size_t size = data->getSize(); | 95 | size_t size = data->getSize(); |
| 96 | unsigned char* buf = data->getBuffer(); | 96 | unsigned char* buf = data->getBuffer(); |
| @@ -128,7 +128,7 @@ main(int argc, char* argv[]) | @@ -128,7 +128,7 @@ main(int argc, char* argv[]) | ||
| 128 | qpdf.processFile(infilename, password); | 128 | qpdf.processFile(infilename, password); |
| 129 | 129 | ||
| 130 | ImageInverter* inv = new ImageInverter; | 130 | ImageInverter* inv = new ImageInverter; |
| 131 | - auto p = PointerHolder<QPDFObjectHandle::StreamDataProvider>(inv); | 131 | + auto p = std::shared_ptr<QPDFObjectHandle::StreamDataProvider>(inv); |
| 132 | 132 | ||
| 133 | // For each page... | 133 | // For each page... |
| 134 | std::vector<QPDFPageObjectHelper> pages = | 134 | std::vector<QPDFPageObjectHelper> pages = |
fuzz/qpdf_fuzzer.cc
| @@ -34,9 +34,9 @@ class FuzzHelper | @@ -34,9 +34,9 @@ class FuzzHelper | ||
| 34 | void run(); | 34 | void run(); |
| 35 | 35 | ||
| 36 | private: | 36 | private: |
| 37 | - PointerHolder<QPDF> getQpdf(); | ||
| 38 | - PointerHolder<QPDFWriter> getWriter(PointerHolder<QPDF>); | ||
| 39 | - void doWrite(PointerHolder<QPDFWriter> w); | 37 | + std::shared_ptr<QPDF> getQpdf(); |
| 38 | + std::shared_ptr<QPDFWriter> getWriter(std::shared_ptr<QPDF>); | ||
| 39 | + void doWrite(std::shared_ptr<QPDFWriter> w); | ||
| 40 | void testWrite(); | 40 | void testWrite(); |
| 41 | void testPages(); | 41 | void testPages(); |
| 42 | void testOutlines(); | 42 | void testOutlines(); |
| @@ -52,27 +52,27 @@ FuzzHelper::FuzzHelper(unsigned char const* data, size_t size) : | @@ -52,27 +52,27 @@ FuzzHelper::FuzzHelper(unsigned char const* data, size_t size) : | ||
| 52 | { | 52 | { |
| 53 | } | 53 | } |
| 54 | 54 | ||
| 55 | -PointerHolder<QPDF> | 55 | +std::shared_ptr<QPDF> |
| 56 | FuzzHelper::getQpdf() | 56 | FuzzHelper::getQpdf() |
| 57 | { | 57 | { |
| 58 | - auto is = PointerHolder<InputSource>( | 58 | + auto is = std::shared_ptr<InputSource>( |
| 59 | new BufferInputSource("fuzz input", &this->input_buffer)); | 59 | new BufferInputSource("fuzz input", &this->input_buffer)); |
| 60 | - auto qpdf = make_pointer_holder<QPDF>(); | 60 | + auto qpdf = std::make_shared<QPDF>(); |
| 61 | qpdf->processInputSource(is); | 61 | qpdf->processInputSource(is); |
| 62 | return qpdf; | 62 | return qpdf; |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | -PointerHolder<QPDFWriter> | ||
| 66 | -FuzzHelper::getWriter(PointerHolder<QPDF> qpdf) | 65 | +std::shared_ptr<QPDFWriter> |
| 66 | +FuzzHelper::getWriter(std::shared_ptr<QPDF> qpdf) | ||
| 67 | { | 67 | { |
| 68 | - auto w = make_pointer_holder<QPDFWriter>(*qpdf); | 68 | + auto w = std::make_shared<QPDFWriter>(*qpdf); |
| 69 | w->setOutputPipeline(&this->discard); | 69 | w->setOutputPipeline(&this->discard); |
| 70 | w->setDecodeLevel(qpdf_dl_all); | 70 | w->setDecodeLevel(qpdf_dl_all); |
| 71 | return w; | 71 | return w; |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | void | 74 | void |
| 75 | -FuzzHelper::doWrite(PointerHolder<QPDFWriter> w) | 75 | +FuzzHelper::doWrite(std::shared_ptr<QPDFWriter> w) |
| 76 | { | 76 | { |
| 77 | try { | 77 | try { |
| 78 | w->write(); | 78 | w->write(); |
| @@ -88,8 +88,8 @@ FuzzHelper::testWrite() | @@ -88,8 +88,8 @@ FuzzHelper::testWrite() | ||
| 88 | { | 88 | { |
| 89 | // Write in various ways to exercise QPDFWriter | 89 | // Write in various ways to exercise QPDFWriter |
| 90 | 90 | ||
| 91 | - PointerHolder<QPDF> q; | ||
| 92 | - PointerHolder<QPDFWriter> w; | 91 | + std::shared_ptr<QPDF> q; |
| 92 | + std::shared_ptr<QPDFWriter> w; | ||
| 93 | 93 | ||
| 94 | q = getQpdf(); | 94 | q = getQpdf(); |
| 95 | w = getWriter(q); | 95 | w = getWriter(q); |
| @@ -126,7 +126,7 @@ FuzzHelper::testPages() | @@ -126,7 +126,7 @@ FuzzHelper::testPages() | ||
| 126 | { | 126 | { |
| 127 | // Parse all content streams, and exercise some helpers that | 127 | // Parse all content streams, and exercise some helpers that |
| 128 | // operate on pages. | 128 | // operate on pages. |
| 129 | - PointerHolder<QPDF> q = getQpdf(); | 129 | + std::shared_ptr<QPDF> q = getQpdf(); |
| 130 | QPDFPageDocumentHelper pdh(*q); | 130 | QPDFPageDocumentHelper pdh(*q); |
| 131 | QPDFPageLabelDocumentHelper pldh(*q); | 131 | QPDFPageLabelDocumentHelper pldh(*q); |
| 132 | QPDFOutlineDocumentHelper odh(*q); | 132 | QPDFOutlineDocumentHelper odh(*q); |
| @@ -168,7 +168,7 @@ FuzzHelper::testPages() | @@ -168,7 +168,7 @@ FuzzHelper::testPages() | ||
| 168 | void | 168 | void |
| 169 | FuzzHelper::testOutlines() | 169 | FuzzHelper::testOutlines() |
| 170 | { | 170 | { |
| 171 | - PointerHolder<QPDF> q = getQpdf(); | 171 | + std::shared_ptr<QPDF> q = getQpdf(); |
| 172 | std::list<std::vector<QPDFOutlineObjectHelper>> queue; | 172 | std::list<std::vector<QPDFOutlineObjectHelper>> queue; |
| 173 | QPDFOutlineDocumentHelper odh(*q); | 173 | QPDFOutlineDocumentHelper odh(*q); |
| 174 | queue.push_back(odh.getTopLevelOutlines()); | 174 | queue.push_back(odh.getTopLevelOutlines()); |
fuzz/standalone_fuzz_target_runner.cc
| @@ -8,7 +8,7 @@ int | @@ -8,7 +8,7 @@ int | ||
| 8 | main(int argc, char** argv) | 8 | main(int argc, char** argv) |
| 9 | { | 9 | { |
| 10 | for (int i = 1; i < argc; i++) { | 10 | for (int i = 1; i < argc; i++) { |
| 11 | - PointerHolder<char> file_buf; | 11 | + std::shared_ptr<char> file_buf; |
| 12 | size_t size = 0; | 12 | size_t size = 0; |
| 13 | QUtil::read_file_into_memory(argv[i], file_buf, size); | 13 | QUtil::read_file_into_memory(argv[i], file_buf, size); |
| 14 | LLVMFuzzerTestOneInput( | 14 | LLVMFuzzerTestOneInput( |
libtests/input_source.cc
| @@ -5,11 +5,11 @@ | @@ -5,11 +5,11 @@ | ||
| 5 | #include <cstring> | 5 | #include <cstring> |
| 6 | #include <iostream> | 6 | #include <iostream> |
| 7 | 7 | ||
| 8 | -static PointerHolder<Buffer> | 8 | +static std::shared_ptr<Buffer> |
| 9 | get_buffer() | 9 | get_buffer() |
| 10 | { | 10 | { |
| 11 | size_t size = 3172; | 11 | size_t size = 3172; |
| 12 | - PointerHolder<Buffer> b(new Buffer(size)); | 12 | + std::shared_ptr<Buffer> b(new Buffer(size)); |
| 13 | unsigned char* p = b->getBuffer(); | 13 | unsigned char* p = b->getBuffer(); |
| 14 | for (size_t i = 0; i < size; ++i) { | 14 | for (size_t i = 0; i < size; ++i) { |
| 15 | p[i] = static_cast<unsigned char>(i & 0xff); | 15 | p[i] = static_cast<unsigned char>(i & 0xff); |
| @@ -20,7 +20,7 @@ get_buffer() | @@ -20,7 +20,7 @@ get_buffer() | ||
| 20 | class Finder: public InputSource::Finder | 20 | class Finder: public InputSource::Finder |
| 21 | { | 21 | { |
| 22 | public: | 22 | public: |
| 23 | - Finder(PointerHolder<InputSource> is, std::string const& after) : | 23 | + Finder(std::shared_ptr<InputSource> is, std::string const& after) : |
| 24 | is(is), | 24 | is(is), |
| 25 | after(after) | 25 | after(after) |
| 26 | { | 26 | { |
| @@ -31,7 +31,7 @@ class Finder: public InputSource::Finder | @@ -31,7 +31,7 @@ class Finder: public InputSource::Finder | ||
| 31 | virtual bool check(); | 31 | virtual bool check(); |
| 32 | 32 | ||
| 33 | private: | 33 | private: |
| 34 | - PointerHolder<InputSource> is; | 34 | + std::shared_ptr<InputSource> is; |
| 35 | std::string after; | 35 | std::string after; |
| 36 | }; | 36 | }; |
| 37 | 37 | ||
| @@ -57,14 +57,14 @@ check(char const* description, bool expected, bool actual) | @@ -57,14 +57,14 @@ check(char const* description, bool expected, bool actual) | ||
| 57 | int | 57 | int |
| 58 | main() | 58 | main() |
| 59 | { | 59 | { |
| 60 | - PointerHolder<Buffer> b1 = get_buffer(); | 60 | + std::shared_ptr<Buffer> b1 = get_buffer(); |
| 61 | unsigned char* b = b1->getBuffer(); | 61 | unsigned char* b = b1->getBuffer(); |
| 62 | // Straddle block boundaries | 62 | // Straddle block boundaries |
| 63 | memcpy(b + 1022, "potato", 6); | 63 | memcpy(b + 1022, "potato", 6); |
| 64 | // Overlap so that the first check() would advance past the start | 64 | // Overlap so that the first check() would advance past the start |
| 65 | // of the next match | 65 | // of the next match |
| 66 | memcpy(b + 2037, "potato potato salad ", 20); | 66 | memcpy(b + 2037, "potato potato salad ", 20); |
| 67 | - auto is = PointerHolder<InputSource>( | 67 | + auto is = std::shared_ptr<InputSource>( |
| 68 | new BufferInputSource("test buffer input source", b1.get())); | 68 | new BufferInputSource("test buffer input source", b1.get())); |
| 69 | Finder f1(is, "salad"); | 69 | Finder f1(is, "salad"); |
| 70 | check("find potato salad", true, is->findFirst("potato", 0, 0, f1)); | 70 | check("find potato salad", true, is->findFirst("potato", 0, 0, f1)); |
libtests/json_parse.cc
| @@ -11,7 +11,7 @@ main(int argc, char* argv[]) | @@ -11,7 +11,7 @@ main(int argc, char* argv[]) | ||
| 11 | } | 11 | } |
| 12 | char const* filename = argv[1]; | 12 | char const* filename = argv[1]; |
| 13 | try { | 13 | try { |
| 14 | - PointerHolder<char> buf; | 14 | + std::shared_ptr<char> buf; |
| 15 | size_t size; | 15 | size_t size; |
| 16 | QUtil::read_file_into_memory(filename, buf, size); | 16 | QUtil::read_file_into_memory(filename, buf, size); |
| 17 | std::string s(buf.get(), size); | 17 | std::string s(buf.get(), size); |
libtests/qutil.cc
| @@ -529,7 +529,7 @@ read_from_file_test() | @@ -529,7 +529,7 @@ read_from_file_test() | ||
| 529 | fclose(fp); | 529 | fclose(fp); |
| 530 | } | 530 | } |
| 531 | 531 | ||
| 532 | - PointerHolder<char> buf; | 532 | + std::shared_ptr<char> buf; |
| 533 | size_t size = 0; | 533 | size_t size = 0; |
| 534 | QUtil::read_file_into_memory("other-file", buf, size); | 534 | QUtil::read_file_into_memory("other-file", buf, size); |
| 535 | std::cout << "read " << size << " bytes" << std::endl; | 535 | std::cout << "read " << size << " bytes" << std::endl; |
| @@ -595,7 +595,7 @@ assert_no_file(char const* filename) | @@ -595,7 +595,7 @@ assert_no_file(char const* filename) | ||
| 595 | void | 595 | void |
| 596 | rename_delete_test() | 596 | rename_delete_test() |
| 597 | { | 597 | { |
| 598 | - PointerHolder<char> buf; | 598 | + std::shared_ptr<char> buf; |
| 599 | size_t size = 0; | 599 | size_t size = 0; |
| 600 | 600 | ||
| 601 | try { | 601 | try { |
qpdf/test_driver.cc
| @@ -49,7 +49,7 @@ usage() | @@ -49,7 +49,7 @@ usage() | ||
| 49 | class Provider: public QPDFObjectHandle::StreamDataProvider | 49 | class Provider: public QPDFObjectHandle::StreamDataProvider |
| 50 | { | 50 | { |
| 51 | public: | 51 | public: |
| 52 | - Provider(PointerHolder<Buffer> b) : | 52 | + Provider(std::shared_ptr<Buffer> b) : |
| 53 | b(b), | 53 | b(b), |
| 54 | bad_length(false) | 54 | bad_length(false) |
| 55 | { | 55 | { |
| @@ -74,7 +74,7 @@ class Provider: public QPDFObjectHandle::StreamDataProvider | @@ -74,7 +74,7 @@ class Provider: public QPDFObjectHandle::StreamDataProvider | ||
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | private: | 76 | private: |
| 77 | - PointerHolder<Buffer> b; | 77 | + std::shared_ptr<Buffer> b; |
| 78 | bool bad_length; | 78 | bool bad_length; |
| 79 | }; | 79 | }; |
| 80 | 80 | ||
| @@ -151,7 +151,7 @@ class TokenFilter: public QPDFObjectHandle::TokenFilter | @@ -151,7 +151,7 @@ class TokenFilter: public QPDFObjectHandle::TokenFilter | ||
| 151 | static std::string | 151 | static std::string |
| 152 | getPageContents(QPDFObjectHandle page) | 152 | getPageContents(QPDFObjectHandle page) |
| 153 | { | 153 | { |
| 154 | - PointerHolder<Buffer> b1 = page.getKey("/Contents").getStreamData(); | 154 | + std::shared_ptr<Buffer> b1 = page.getKey("/Contents").getStreamData(); |
| 155 | return std::string( | 155 | return std::string( |
| 156 | reinterpret_cast<char*>(b1->getBuffer()), b1->getSize()) + | 156 | reinterpret_cast<char*>(b1->getBuffer()), b1->getSize()) + |
| 157 | "\0"; | 157 | "\0"; |
| @@ -271,14 +271,14 @@ test_0_1(QPDF& pdf, char const* arg2) | @@ -271,14 +271,14 @@ test_0_1(QPDF& pdf, char const* arg2) | ||
| 271 | std::cout << "Raw stream data:" << std::endl; | 271 | std::cout << "Raw stream data:" << std::endl; |
| 272 | std::cout.flush(); | 272 | std::cout.flush(); |
| 273 | QUtil::binary_stdout(); | 273 | QUtil::binary_stdout(); |
| 274 | - auto out = make_pointer_holder<Pl_StdioFile>("raw", stdout); | 274 | + auto out = std::make_shared<Pl_StdioFile>("raw", stdout); |
| 275 | qtest.pipeStreamData(out.get(), 0, qpdf_dl_none); | 275 | qtest.pipeStreamData(out.get(), 0, qpdf_dl_none); |
| 276 | 276 | ||
| 277 | std::cout << std::endl << "Uncompressed stream data:" << std::endl; | 277 | std::cout << std::endl << "Uncompressed stream data:" << std::endl; |
| 278 | if (qtest.pipeStreamData(0, 0, qpdf_dl_all)) { | 278 | if (qtest.pipeStreamData(0, 0, qpdf_dl_all)) { |
| 279 | std::cout.flush(); | 279 | std::cout.flush(); |
| 280 | QUtil::binary_stdout(); | 280 | QUtil::binary_stdout(); |
| 281 | - out = make_pointer_holder<Pl_StdioFile>("filtered", stdout); | 281 | + out = std::make_shared<Pl_StdioFile>("filtered", stdout); |
| 282 | qtest.pipeStreamData(out.get(), 0, qpdf_dl_all); | 282 | qtest.pipeStreamData(out.get(), 0, qpdf_dl_all); |
| 283 | std::cout << std::endl << "End of stream data" << std::endl; | 283 | std::cout << std::endl << "End of stream data" << std::endl; |
| 284 | } else { | 284 | } else { |
| @@ -316,7 +316,7 @@ test_2(QPDF& pdf, char const* arg2) | @@ -316,7 +316,7 @@ test_2(QPDF& pdf, char const* arg2) | ||
| 316 | QPDFObjectHandle page = kids.getArrayItem(1); // second page | 316 | QPDFObjectHandle page = kids.getArrayItem(1); // second page |
| 317 | QPDFObjectHandle contents = page.getKey("/Contents"); | 317 | QPDFObjectHandle contents = page.getKey("/Contents"); |
| 318 | QUtil::binary_stdout(); | 318 | QUtil::binary_stdout(); |
| 319 | - auto out = make_pointer_holder<Pl_StdioFile>("filtered", stdout); | 319 | + auto out = std::make_shared<Pl_StdioFile>("filtered", stdout); |
| 320 | contents.pipeStreamData(out.get(), 0, qpdf_dl_generalized); | 320 | contents.pipeStreamData(out.get(), 0, qpdf_dl_generalized); |
| 321 | } | 321 | } |
| 322 | 322 | ||
| @@ -329,8 +329,7 @@ test_3(QPDF& pdf, char const* arg2) | @@ -329,8 +329,7 @@ test_3(QPDF& pdf, char const* arg2) | ||
| 329 | std::cout << "-- stream " << i << " --" << std::endl; | 329 | std::cout << "-- stream " << i << " --" << std::endl; |
| 330 | std::cout.flush(); | 330 | std::cout.flush(); |
| 331 | QUtil::binary_stdout(); | 331 | QUtil::binary_stdout(); |
| 332 | - auto out = | ||
| 333 | - make_pointer_holder<Pl_StdioFile>("tokenized stream", stdout); | 332 | + auto out = std::make_shared<Pl_StdioFile>("tokenized stream", stdout); |
| 334 | stream.pipeStreamData( | 333 | stream.pipeStreamData( |
| 335 | out.get(), qpdf_ef_normalize, qpdf_dl_generalized); | 334 | out.get(), qpdf_ef_normalize, qpdf_dl_generalized); |
| 336 | } | 335 | } |
| @@ -503,7 +502,7 @@ test_8(QPDF& pdf, char const* arg2) | @@ -503,7 +502,7 @@ test_8(QPDF& pdf, char const* arg2) | ||
| 503 | // This is a bogus way to use StreamDataProvider, but it does | 502 | // This is a bogus way to use StreamDataProvider, but it does |
| 504 | // adequately test its functionality. | 503 | // adequately test its functionality. |
| 505 | Provider* provider = new Provider(b); | 504 | Provider* provider = new Provider(b); |
| 506 | - auto p = PointerHolder<QPDFObjectHandle::StreamDataProvider>(provider); | 505 | + auto p = std::shared_ptr<QPDFObjectHandle::StreamDataProvider>(provider); |
| 507 | qstream.replaceStreamData( | 506 | qstream.replaceStreamData( |
| 508 | p, | 507 | p, |
| 509 | QPDFObjectHandle::newName("/FlateDecode"), | 508 | QPDFObjectHandle::newName("/FlateDecode"), |
| @@ -532,7 +531,7 @@ test_9(QPDF& pdf, char const* arg2) | @@ -532,7 +531,7 @@ test_9(QPDF& pdf, char const* arg2) | ||
| 532 | { | 531 | { |
| 533 | QPDFObjectHandle root = pdf.getRoot(); | 532 | QPDFObjectHandle root = pdf.getRoot(); |
| 534 | // Explicitly exercise the Buffer version of newStream | 533 | // Explicitly exercise the Buffer version of newStream |
| 535 | - auto buf = make_pointer_holder<Buffer>(20U); | 534 | + auto buf = std::make_shared<Buffer>(20U); |
| 536 | unsigned char* bp = buf->getBuffer(); | 535 | unsigned char* bp = buf->getBuffer(); |
| 537 | memcpy(bp, "data for new stream\n", 20); // no null! | 536 | memcpy(bp, "data for new stream\n", 20); // no null! |
| 538 | QPDFObjectHandle qstream = QPDFObjectHandle::newStream(&pdf, buf); | 537 | QPDFObjectHandle qstream = QPDFObjectHandle::newStream(&pdf, buf); |
| @@ -581,8 +580,8 @@ test_11(QPDF& pdf, char const* arg2) | @@ -581,8 +580,8 @@ test_11(QPDF& pdf, char const* arg2) | ||
| 581 | { | 580 | { |
| 582 | QPDFObjectHandle root = pdf.getRoot(); | 581 | QPDFObjectHandle root = pdf.getRoot(); |
| 583 | QPDFObjectHandle qstream = root.getKey("/QStream"); | 582 | QPDFObjectHandle qstream = root.getKey("/QStream"); |
| 584 | - PointerHolder<Buffer> b1 = qstream.getStreamData(); | ||
| 585 | - PointerHolder<Buffer> b2 = qstream.getRawStreamData(); | 583 | + std::shared_ptr<Buffer> b1 = qstream.getStreamData(); |
| 584 | + std::shared_ptr<Buffer> b2 = qstream.getRawStreamData(); | ||
| 586 | if ((b1->getSize() == 7) && (memcmp(b1->getBuffer(), "potato\n", 7) == 0)) { | 585 | if ((b1->getSize() == 7) && (memcmp(b1->getBuffer(), "potato\n", 7) == 0)) { |
| 587 | std::cout << "filtered stream data okay" << std::endl; | 586 | std::cout << "filtered stream data okay" << std::endl; |
| 588 | } | 587 | } |
| @@ -815,7 +814,7 @@ test_17(QPDF& pdf, char const* arg2) | @@ -815,7 +814,7 @@ test_17(QPDF& pdf, char const* arg2) | ||
| 815 | QPDFObjectHandle(pages.at(1)).getKey("/Contents").getObjGen()); | 814 | QPDFObjectHandle(pages.at(1)).getKey("/Contents").getObjGen()); |
| 816 | pdf.removePage(pages.at(0)); | 815 | pdf.removePage(pages.at(0)); |
| 817 | assert(pages.size() == 2); | 816 | assert(pages.size() == 2); |
| 818 | - PointerHolder<Buffer> b = | 817 | + std::shared_ptr<Buffer> b = |
| 819 | QPDFObjectHandle(pages.at(0)).getKey("/Contents").getStreamData(); | 818 | QPDFObjectHandle(pages.at(0)).getKey("/Contents").getStreamData(); |
| 820 | std::string contents = std::string( | 819 | std::string contents = std::string( |
| 821 | reinterpret_cast<char const*>(b->getBuffer()), b->getSize()); | 820 | reinterpret_cast<char const*>(b->getBuffer()), b->getSize()); |
| @@ -1039,7 +1038,7 @@ test_27(QPDF& pdf, char const* arg2) | @@ -1039,7 +1038,7 @@ test_27(QPDF& pdf, char const* arg2) | ||
| 1039 | // also exercise setImmediateCopyFrom. | 1038 | // also exercise setImmediateCopyFrom. |
| 1040 | 1039 | ||
| 1041 | // Create a provider. The provider stays in scope. | 1040 | // Create a provider. The provider stays in scope. |
| 1042 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> p1; | 1041 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> p1; |
| 1043 | { | 1042 | { |
| 1044 | // Local scope | 1043 | // Local scope |
| 1045 | Pl_Buffer pl("buffer"); | 1044 | Pl_Buffer pl("buffer"); |
| @@ -1065,7 +1064,7 @@ test_27(QPDF& pdf, char const* arg2) | @@ -1065,7 +1064,7 @@ test_27(QPDF& pdf, char const* arg2) | ||
| 1065 | // Make sure some source PDFs are out of scope when we | 1064 | // Make sure some source PDFs are out of scope when we |
| 1066 | // write. | 1065 | // write. |
| 1067 | 1066 | ||
| 1068 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> p2; | 1067 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> p2; |
| 1069 | // Create another provider. This one will go out of scope | 1068 | // Create another provider. This one will go out of scope |
| 1070 | // along with its containing qpdf, which has | 1069 | // along with its containing qpdf, which has |
| 1071 | // setImmediateCopyFrom(true). | 1070 | // setImmediateCopyFrom(true). |
| @@ -1266,7 +1265,7 @@ test_35(QPDF& pdf, char const* arg2) | @@ -1266,7 +1265,7 @@ test_35(QPDF& pdf, char const* arg2) | ||
| 1266 | { | 1265 | { |
| 1267 | // Extract attachments | 1266 | // Extract attachments |
| 1268 | 1267 | ||
| 1269 | - std::map<std::string, PointerHolder<Buffer>> attachments; | 1268 | + std::map<std::string, std::shared_ptr<Buffer>> attachments; |
| 1270 | QPDFObjectHandle root = pdf.getRoot(); | 1269 | QPDFObjectHandle root = pdf.getRoot(); |
| 1271 | QPDFObjectHandle names = root.getKey("/Names"); | 1270 | QPDFObjectHandle names = root.getKey("/Names"); |
| 1272 | QPDFObjectHandle embeddedFiles = names.getKey("/EmbeddedFiles"); | 1271 | QPDFObjectHandle embeddedFiles = names.getKey("/EmbeddedFiles"); |
| @@ -1282,7 +1281,7 @@ test_35(QPDF& pdf, char const* arg2) | @@ -1282,7 +1281,7 @@ test_35(QPDF& pdf, char const* arg2) | ||
| 1282 | attachments[filename] = stream.getStreamData(); | 1281 | attachments[filename] = stream.getStreamData(); |
| 1283 | } | 1282 | } |
| 1284 | } | 1283 | } |
| 1285 | - for (std::map<std::string, PointerHolder<Buffer>>::iterator iter = | 1284 | + for (std::map<std::string, std::shared_ptr<Buffer>>::iterator iter = |
| 1286 | attachments.begin(); | 1285 | attachments.begin(); |
| 1287 | iter != attachments.end(); | 1286 | iter != attachments.end(); |
| 1288 | ++iter) { | 1287 | ++iter) { |
| @@ -1421,7 +1420,7 @@ test_41(QPDF& pdf, char const* arg2) | @@ -1421,7 +1420,7 @@ test_41(QPDF& pdf, char const* arg2) | ||
| 1421 | iter != pages.end(); | 1420 | iter != pages.end(); |
| 1422 | ++iter) { | 1421 | ++iter) { |
| 1423 | (*iter).addContentTokenFilter( | 1422 | (*iter).addContentTokenFilter( |
| 1424 | - PointerHolder<QPDFObjectHandle::TokenFilter>(new TokenFilter())); | 1423 | + std::shared_ptr<QPDFObjectHandle::TokenFilter>(new TokenFilter())); |
| 1425 | } | 1424 | } |
| 1426 | QPDFWriter w(pdf, "a.pdf"); | 1425 | QPDFWriter w(pdf, "a.pdf"); |
| 1427 | w.setQDFMode(true); | 1426 | w.setQDFMode(true); |
| @@ -2468,12 +2467,12 @@ test_68(QPDF& pdf, char const* arg2) | @@ -2468,12 +2467,12 @@ test_68(QPDF& pdf, char const* arg2) | ||
| 2468 | } catch (std::exception& e) { | 2467 | } catch (std::exception& e) { |
| 2469 | std::cout << "get unfilterable stream: " << e.what() << std::endl; | 2468 | std::cout << "get unfilterable stream: " << e.what() << std::endl; |
| 2470 | } | 2469 | } |
| 2471 | - PointerHolder<Buffer> b1 = qstream.getStreamData(qpdf_dl_all); | 2470 | + std::shared_ptr<Buffer> b1 = qstream.getStreamData(qpdf_dl_all); |
| 2472 | if ((b1->getSize() > 10) && | 2471 | if ((b1->getSize() > 10) && |
| 2473 | (memcmp(b1->getBuffer(), "wwwwwwwww", 9) == 0)) { | 2472 | (memcmp(b1->getBuffer(), "wwwwwwwww", 9) == 0)) { |
| 2474 | std::cout << "filtered stream data okay" << std::endl; | 2473 | std::cout << "filtered stream data okay" << std::endl; |
| 2475 | } | 2474 | } |
| 2476 | - PointerHolder<Buffer> b2 = qstream.getRawStreamData(); | 2475 | + std::shared_ptr<Buffer> b2 = qstream.getRawStreamData(); |
| 2477 | if ((b2->getSize() > 10) && | 2476 | if ((b2->getSize() > 10) && |
| 2478 | (memcmp( | 2477 | (memcmp( |
| 2479 | b2->getBuffer(), "\xff\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46", 10) == | 2478 | b2->getBuffer(), "\xff\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46", 10) == |
| @@ -2578,11 +2577,11 @@ test_72(QPDF& pdf, char const* arg2) | @@ -2578,11 +2577,11 @@ test_72(QPDF& pdf, char const* arg2) | ||
| 2578 | Pl_Buffer b("buffer"); | 2577 | Pl_Buffer b("buffer"); |
| 2579 | if (i == 0) { | 2578 | if (i == 0) { |
| 2580 | fx1.addContentTokenFilter( | 2579 | fx1.addContentTokenFilter( |
| 2581 | - PointerHolder<QPDFObjectHandle::TokenFilter>( | 2580 | + std::shared_ptr<QPDFObjectHandle::TokenFilter>( |
| 2582 | new TokenFilter())); | 2581 | new TokenFilter())); |
| 2583 | } else { | 2582 | } else { |
| 2584 | fx1.getObjectHandle().addTokenFilter( | 2583 | fx1.getObjectHandle().addTokenFilter( |
| 2585 | - PointerHolder<QPDFObjectHandle::TokenFilter>( | 2584 | + std::shared_ptr<QPDFObjectHandle::TokenFilter>( |
| 2586 | new TokenFilter())); | 2585 | new TokenFilter())); |
| 2587 | } | 2586 | } |
| 2588 | fx1.pipeContents(&b); | 2587 | fx1.pipeContents(&b); |
| @@ -2999,7 +2998,7 @@ test_83(QPDF& pdf, char const* arg2) | @@ -2999,7 +2998,7 @@ test_83(QPDF& pdf, char const* arg2) | ||
| 2999 | // partial = true, we just use qpdf --job-json-file. | 2998 | // partial = true, we just use qpdf --job-json-file. |
| 3000 | 2999 | ||
| 3001 | QPDFJob j; | 3000 | QPDFJob j; |
| 3002 | - PointerHolder<char> file_buf; | 3001 | + std::shared_ptr<char> file_buf; |
| 3003 | size_t size; | 3002 | size_t size; |
| 3004 | QUtil::read_file_into_memory(arg2, file_buf, size); | 3003 | QUtil::read_file_into_memory(arg2, file_buf, size); |
| 3005 | try { | 3004 | try { |
| @@ -3201,7 +3200,7 @@ runtest(int n, char const* filename1, char const* arg2) | @@ -3201,7 +3200,7 @@ runtest(int n, char const* filename1, char const* arg2) | ||
| 3201 | } | 3200 | } |
| 3202 | 3201 | ||
| 3203 | QPDF pdf; | 3202 | QPDF pdf; |
| 3204 | - PointerHolder<char> file_buf; | 3203 | + std::shared_ptr<char> file_buf; |
| 3205 | FILE* filep = 0; | 3204 | FILE* filep = 0; |
| 3206 | if (n == 0) { | 3205 | if (n == 0) { |
| 3207 | pdf.setAttemptRecovery(false); | 3206 | pdf.setAttemptRecovery(false); |
qpdf/test_large_file.cc
| @@ -231,7 +231,7 @@ create_pdf(char const* filename) | @@ -231,7 +231,7 @@ create_pdf(char const* filename) | ||
| 231 | image_dict.replaceKey("/Width", newInteger(width)); | 231 | image_dict.replaceKey("/Width", newInteger(width)); |
| 232 | image_dict.replaceKey("/Height", newInteger(height)); | 232 | image_dict.replaceKey("/Height", newInteger(height)); |
| 233 | ImageProvider* p = new ImageProvider(pageno); | 233 | ImageProvider* p = new ImageProvider(pageno); |
| 234 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> provider(p); | 234 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> provider(p); |
| 235 | image.replaceStreamData( | 235 | image.replaceStreamData( |
| 236 | provider, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); | 236 | provider, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); |
| 237 | 237 | ||
| @@ -265,7 +265,7 @@ create_pdf(char const* filename) | @@ -265,7 +265,7 @@ create_pdf(char const* filename) | ||
| 265 | static void | 265 | static void |
| 266 | check_page_contents(size_t pageno, QPDFObjectHandle page) | 266 | check_page_contents(size_t pageno, QPDFObjectHandle page) |
| 267 | { | 267 | { |
| 268 | - PointerHolder<Buffer> buf = page.getKey("/Contents").getStreamData(); | 268 | + std::shared_ptr<Buffer> buf = page.getKey("/Contents").getStreamData(); |
| 269 | std::string actual_contents = | 269 | std::string actual_contents = |
| 270 | std::string(reinterpret_cast<char*>(buf->getBuffer()), buf->getSize()); | 270 | std::string(reinterpret_cast<char*>(buf->getBuffer()), buf->getSize()); |
| 271 | std::string expected_contents = generate_page_contents(pageno); | 271 | std::string expected_contents = generate_page_contents(pageno); |
qpdf/test_tokenizer.cc
| @@ -25,7 +25,7 @@ usage() | @@ -25,7 +25,7 @@ usage() | ||
| 25 | class Finder: public InputSource::Finder | 25 | class Finder: public InputSource::Finder |
| 26 | { | 26 | { |
| 27 | public: | 27 | public: |
| 28 | - Finder(PointerHolder<InputSource> is, std::string const& str) : | 28 | + Finder(std::shared_ptr<InputSource> is, std::string const& str) : |
| 29 | is(is), | 29 | is(is), |
| 30 | str(str) | 30 | str(str) |
| 31 | { | 31 | { |
| @@ -36,7 +36,7 @@ class Finder: public InputSource::Finder | @@ -36,7 +36,7 @@ class Finder: public InputSource::Finder | ||
| 36 | virtual bool check(); | 36 | virtual bool check(); |
| 37 | 37 | ||
| 38 | private: | 38 | private: |
| 39 | - PointerHolder<InputSource> is; | 39 | + std::shared_ptr<InputSource> is; |
| 40 | std::string str; | 40 | std::string str; |
| 41 | }; | 41 | }; |
| 42 | 42 | ||
| @@ -117,7 +117,7 @@ sanitize(std::string const& value) | @@ -117,7 +117,7 @@ sanitize(std::string const& value) | ||
| 117 | static void | 117 | static void |
| 118 | try_skipping( | 118 | try_skipping( |
| 119 | QPDFTokenizer& tokenizer, | 119 | QPDFTokenizer& tokenizer, |
| 120 | - PointerHolder<InputSource> is, | 120 | + std::shared_ptr<InputSource> is, |
| 121 | size_t max_len, | 121 | size_t max_len, |
| 122 | char const* what, | 122 | char const* what, |
| 123 | Finder& f) | 123 | Finder& f) |
| @@ -132,7 +132,7 @@ try_skipping( | @@ -132,7 +132,7 @@ try_skipping( | ||
| 132 | 132 | ||
| 133 | static void | 133 | static void |
| 134 | dump_tokens( | 134 | dump_tokens( |
| 135 | - PointerHolder<InputSource> is, | 135 | + std::shared_ptr<InputSource> is, |
| 136 | std::string const& label, | 136 | std::string const& label, |
| 137 | size_t max_len, | 137 | size_t max_len, |
| 138 | bool include_ignorable, | 138 | bool include_ignorable, |
| @@ -191,12 +191,12 @@ dump_tokens( | @@ -191,12 +191,12 @@ dump_tokens( | ||
| 191 | static void | 191 | static void |
| 192 | process(char const* filename, bool include_ignorable, size_t max_len) | 192 | process(char const* filename, bool include_ignorable, size_t max_len) |
| 193 | { | 193 | { |
| 194 | - PointerHolder<InputSource> is; | 194 | + std::shared_ptr<InputSource> is; |
| 195 | 195 | ||
| 196 | // Tokenize file, skipping streams | 196 | // Tokenize file, skipping streams |
| 197 | FileInputSource* fis = new FileInputSource(); | 197 | FileInputSource* fis = new FileInputSource(); |
| 198 | fis->setFilename(filename); | 198 | fis->setFilename(filename); |
| 199 | - is = PointerHolder<InputSource>(fis); | 199 | + is = std::shared_ptr<InputSource>(fis); |
| 200 | dump_tokens(is, "FILE", max_len, include_ignorable, true, false); | 200 | dump_tokens(is, "FILE", max_len, include_ignorable, true, false); |
| 201 | 201 | ||
| 202 | // Tokenize content streams, skipping inline images | 202 | // Tokenize content streams, skipping inline images |
| @@ -214,7 +214,7 @@ process(char const* filename, bool include_ignorable, size_t max_len) | @@ -214,7 +214,7 @@ process(char const* filename, bool include_ignorable, size_t max_len) | ||
| 214 | auto content_data = plb.getBufferSharedPointer(); | 214 | auto content_data = plb.getBufferSharedPointer(); |
| 215 | BufferInputSource* bis = | 215 | BufferInputSource* bis = |
| 216 | new BufferInputSource("content data", content_data.get()); | 216 | new BufferInputSource("content data", content_data.get()); |
| 217 | - is = PointerHolder<InputSource>(bis); | 217 | + is = std::shared_ptr<InputSource>(bis); |
| 218 | dump_tokens( | 218 | dump_tokens( |
| 219 | is, | 219 | is, |
| 220 | "PAGE " + QUtil::int_to_string(pageno), | 220 | "PAGE " + QUtil::int_to_string(pageno), |
| @@ -231,11 +231,11 @@ process(char const* filename, bool include_ignorable, size_t max_len) | @@ -231,11 +231,11 @@ process(char const* filename, bool include_ignorable, size_t max_len) | ||
| 231 | ++iter) { | 231 | ++iter) { |
| 232 | if ((*iter).isStream() && (*iter).getDict().getKey("/Type").isName() && | 232 | if ((*iter).isStream() && (*iter).getDict().getKey("/Type").isName() && |
| 233 | (*iter).getDict().getKey("/Type").getName() == "/ObjStm") { | 233 | (*iter).getDict().getKey("/Type").getName() == "/ObjStm") { |
| 234 | - PointerHolder<Buffer> b = | 234 | + std::shared_ptr<Buffer> b = |
| 235 | (*iter).getStreamData(qpdf_dl_specialized); | 235 | (*iter).getStreamData(qpdf_dl_specialized); |
| 236 | BufferInputSource* bis = | 236 | BufferInputSource* bis = |
| 237 | new BufferInputSource("object stream data", b.get()); | 237 | new BufferInputSource("object stream data", b.get()); |
| 238 | - is = PointerHolder<InputSource>(bis); | 238 | + is = std::shared_ptr<InputSource>(bis); |
| 239 | dump_tokens( | 239 | dump_tokens( |
| 240 | is, | 240 | is, |
| 241 | "OBJECT STREAM " + QUtil::int_to_string((*iter).getObjectID()), | 241 | "OBJECT STREAM " + QUtil::int_to_string((*iter).getObjectID()), |
zlib-flate/zlib-flate.cc
| @@ -59,8 +59,8 @@ main(int argc, char* argv[]) | @@ -59,8 +59,8 @@ main(int argc, char* argv[]) | ||
| 59 | 59 | ||
| 60 | QUtil::binary_stdout(); | 60 | QUtil::binary_stdout(); |
| 61 | QUtil::binary_stdin(); | 61 | QUtil::binary_stdin(); |
| 62 | - auto out = make_pointer_holder<Pl_StdioFile>("stdout", stdout); | ||
| 63 | - auto flate = make_pointer_holder<Pl_Flate>("flate", out.get(), action); | 62 | + auto out = std::make_shared<Pl_StdioFile>("stdout", stdout); |
| 63 | + auto flate = std::make_shared<Pl_Flate>("flate", out.get(), action); | ||
| 64 | bool warn = false; | 64 | bool warn = false; |
| 65 | flate->setWarnCallback([&warn](char const* msg, int code) { | 65 | flate->setWarnCallback([&warn](char const* msg, int code) { |
| 66 | warn = true; | 66 | warn = true; |