Commit a68703b07e928be0eeb909c0e777e13e88cbf86d
1 parent
ae819b53
Replace PointerHolder with std::shared_ptr in library sources only
(patrepl and cleanpatch are my own utilities)
patrepl s/PointerHolder/std::shared_ptr/g {include,libqpdf}/qpdf/*.hh
patrepl s/PointerHolder/std::shared_ptr/g libqpdf/*.cc
patrepl s/make_pointer_holder/std::make_shared/g libqpdf/*.cc
patrepl s/make_array_pointer_holder/QUtil::make_shared_array/g libqpdf/*.cc
patrepl s,qpdf/std::shared_ptr,qpdf/PointerHolder, **/*.cc **/*.hh
git restore include/qpdf/PointerHolder.hh
cleanpatch
./format-code
Showing
68 changed files
with
283 additions
and
278 deletions
include/qpdf/Buffer.hh
include/qpdf/BufferInputSource.hh
include/qpdf/ClosedFileInputSource.hh
| ... | ... | @@ -84,10 +84,10 @@ class ClosedFileInputSource: public InputSource |
| 84 | 84 | |
| 85 | 85 | std::string filename; |
| 86 | 86 | qpdf_offset_t offset; |
| 87 | - PointerHolder<FileInputSource> fis; | |
| 87 | + std::shared_ptr<FileInputSource> fis; | |
| 88 | 88 | bool stay_open; |
| 89 | 89 | }; |
| 90 | - PointerHolder<Members> m; | |
| 90 | + std::shared_ptr<Members> m; | |
| 91 | 91 | }; |
| 92 | 92 | |
| 93 | 93 | #endif // QPDF_CLOSEDFILEINPUTSOURCE_HH | ... | ... |
include/qpdf/FileInputSource.hh
include/qpdf/InputSource.hh
include/qpdf/JSON.hh
include/qpdf/Pl_Buffer.hh
| ... | ... | @@ -59,7 +59,7 @@ class Pl_Buffer: public Pipeline |
| 59 | 59 | |
| 60 | 60 | // Same as getBuffer but wraps the result in a shared pointer. |
| 61 | 61 | QPDF_DLL |
| 62 | - PointerHolder<Buffer> getBufferSharedPointer(); | |
| 62 | + std::shared_ptr<Buffer> getBufferSharedPointer(); | |
| 63 | 63 | |
| 64 | 64 | // getMallocBuffer behaves in the same was as getBuffer except the |
| 65 | 65 | // buffer is allocated with malloc(), making it suitable for use |
| ... | ... | @@ -84,11 +84,11 @@ class Pl_Buffer: public Pipeline |
| 84 | 84 | Members(Members const&); |
| 85 | 85 | |
| 86 | 86 | bool ready; |
| 87 | - PointerHolder<Buffer> data; | |
| 87 | + std::shared_ptr<Buffer> data; | |
| 88 | 88 | size_t total_size; |
| 89 | 89 | }; |
| 90 | 90 | |
| 91 | - PointerHolder<Members> m; | |
| 91 | + std::shared_ptr<Members> m; | |
| 92 | 92 | }; |
| 93 | 93 | |
| 94 | 94 | #endif // PL_BUFFER_HH | ... | ... |
include/qpdf/Pl_Concatenate.hh
include/qpdf/Pl_Count.hh
include/qpdf/Pl_DCT.hh
include/qpdf/Pl_Discard.hh
include/qpdf/Pl_Flate.hh
include/qpdf/Pl_QPDFTokenizer.hh
include/qpdf/Pl_RunLength.hh
include/qpdf/Pl_StdioFile.hh
include/qpdf/QPDF.hh
| ... | ... | @@ -108,7 +108,7 @@ class QPDF |
| 108 | 108 | // InputSource and use this method. |
| 109 | 109 | QPDF_DLL |
| 110 | 110 | void |
| 111 | - processInputSource(PointerHolder<InputSource>, char const* password = 0); | |
| 111 | + processInputSource(std::shared_ptr<InputSource>, char const* password = 0); | |
| 112 | 112 | |
| 113 | 113 | // Close or otherwise release the input source. Once this has been |
| 114 | 114 | // called, no other methods of qpdf can be called safely except |
| ... | ... | @@ -714,7 +714,7 @@ class QPDF |
| 714 | 714 | std::map<int, QPDFXRefEntry> const& xref, |
| 715 | 715 | std::map<int, qpdf_offset_t> const& lengths, |
| 716 | 716 | std::map<int, int> const& obj_renumber, |
| 717 | - PointerHolder<Buffer>& hint_stream, | |
| 717 | + std::shared_ptr<Buffer>& hint_stream, | |
| 718 | 718 | int& S, |
| 719 | 719 | int& O) |
| 720 | 720 | { |
| ... | ... | @@ -742,14 +742,14 @@ class QPDF |
| 742 | 742 | friend class QPDFObjectHandle; |
| 743 | 743 | |
| 744 | 744 | private: |
| 745 | - static PointerHolder<QPDFObject> | |
| 745 | + static std::shared_ptr<QPDFObject> | |
| 746 | 746 | resolve(QPDF* qpdf, int objid, int generation) |
| 747 | 747 | { |
| 748 | 748 | return qpdf->resolve(objid, generation); |
| 749 | 749 | } |
| 750 | 750 | static bool |
| 751 | 751 | objectChanged( |
| 752 | - QPDF* qpdf, QPDFObjGen const& og, PointerHolder<QPDFObject>& oph) | |
| 752 | + QPDF* qpdf, QPDFObjGen const& og, std::shared_ptr<QPDFObject>& oph) | |
| 753 | 753 | { |
| 754 | 754 | return qpdf->objectChanged(og, oph); |
| 755 | 755 | } |
| ... | ... | @@ -841,7 +841,7 @@ class QPDF |
| 841 | 841 | { |
| 842 | 842 | } |
| 843 | 843 | ObjCache( |
| 844 | - PointerHolder<QPDFObject> object, | |
| 844 | + std::shared_ptr<QPDFObject> object, | |
| 845 | 845 | qpdf_offset_t end_before_space, |
| 846 | 846 | qpdf_offset_t end_after_space) : |
| 847 | 847 | object(object), |
| ... | ... | @@ -850,7 +850,7 @@ class QPDF |
| 850 | 850 | { |
| 851 | 851 | } |
| 852 | 852 | |
| 853 | - PointerHolder<QPDFObject> object; | |
| 853 | + std::shared_ptr<QPDFObject> object; | |
| 854 | 854 | qpdf_offset_t end_before_space; |
| 855 | 855 | qpdf_offset_t end_after_space; |
| 856 | 856 | }; |
| ... | ... | @@ -896,8 +896,8 @@ class QPDF |
| 896 | 896 | |
| 897 | 897 | public: |
| 898 | 898 | ForeignStreamData( |
| 899 | - PointerHolder<EncryptionParameters> encp, | |
| 900 | - PointerHolder<InputSource> file, | |
| 899 | + std::shared_ptr<EncryptionParameters> encp, | |
| 900 | + std::shared_ptr<InputSource> file, | |
| 901 | 901 | int foreign_objid, |
| 902 | 902 | int foreign_generation, |
| 903 | 903 | qpdf_offset_t offset, |
| ... | ... | @@ -905,8 +905,8 @@ class QPDF |
| 905 | 905 | QPDFObjectHandle local_dict); |
| 906 | 906 | |
| 907 | 907 | private: |
| 908 | - PointerHolder<EncryptionParameters> encp; | |
| 909 | - PointerHolder<InputSource> file; | |
| 908 | + std::shared_ptr<EncryptionParameters> encp; | |
| 909 | + std::shared_ptr<InputSource> file; | |
| 910 | 910 | int foreign_objid; |
| 911 | 911 | int foreign_generation; |
| 912 | 912 | qpdf_offset_t offset; |
| ... | ... | @@ -930,12 +930,12 @@ class QPDF |
| 930 | 930 | void registerForeignStream( |
| 931 | 931 | QPDFObjGen const& local_og, QPDFObjectHandle foreign_stream); |
| 932 | 932 | void registerForeignStream( |
| 933 | - QPDFObjGen const& local_og, PointerHolder<ForeignStreamData>); | |
| 933 | + QPDFObjGen const& local_og, std::shared_ptr<ForeignStreamData>); | |
| 934 | 934 | |
| 935 | 935 | private: |
| 936 | 936 | QPDF& destination_qpdf; |
| 937 | 937 | std::map<QPDFObjGen, QPDFObjectHandle> foreign_streams; |
| 938 | - std::map<QPDFObjGen, PointerHolder<ForeignStreamData>> | |
| 938 | + std::map<QPDFObjGen, std::shared_ptr<ForeignStreamData>> | |
| 939 | 939 | foreign_stream_data; |
| 940 | 940 | }; |
| 941 | 941 | |
| ... | ... | @@ -994,18 +994,18 @@ class QPDF |
| 994 | 994 | void setLastObjectDescription( |
| 995 | 995 | std::string const& description, int objid, int generation); |
| 996 | 996 | QPDFObjectHandle readObject( |
| 997 | - PointerHolder<InputSource>, | |
| 997 | + std::shared_ptr<InputSource>, | |
| 998 | 998 | std::string const& description, |
| 999 | 999 | int objid, |
| 1000 | 1000 | int generation, |
| 1001 | 1001 | bool in_object_stream); |
| 1002 | 1002 | size_t recoverStreamLength( |
| 1003 | - PointerHolder<InputSource> input, | |
| 1003 | + std::shared_ptr<InputSource> input, | |
| 1004 | 1004 | int objid, |
| 1005 | 1005 | int generation, |
| 1006 | 1006 | qpdf_offset_t stream_offset); |
| 1007 | 1007 | QPDFTokenizer::Token |
| 1008 | - readToken(PointerHolder<InputSource>, size_t max_len = 0); | |
| 1008 | + readToken(std::shared_ptr<InputSource>, size_t max_len = 0); | |
| 1009 | 1009 | |
| 1010 | 1010 | QPDFObjectHandle readObjectAtOffset( |
| 1011 | 1011 | bool attempt_recovery, |
| ... | ... | @@ -1015,8 +1015,8 @@ class QPDF |
| 1015 | 1015 | int exp_generation, |
| 1016 | 1016 | int& act_objid, |
| 1017 | 1017 | int& act_generation); |
| 1018 | - bool objectChanged(QPDFObjGen const& og, PointerHolder<QPDFObject>& oph); | |
| 1019 | - PointerHolder<QPDFObject> resolve(int objid, int generation); | |
| 1018 | + bool objectChanged(QPDFObjGen const& og, std::shared_ptr<QPDFObject>& oph); | |
| 1019 | + std::shared_ptr<QPDFObject> resolve(int objid, int generation); | |
| 1020 | 1020 | void resolveObjectsInStream(int obj_stream_number); |
| 1021 | 1021 | void stopOnError(std::string const& message); |
| 1022 | 1022 | |
| ... | ... | @@ -1031,13 +1031,13 @@ class QPDF |
| 1031 | 1031 | bool suppress_warnings, |
| 1032 | 1032 | bool will_retry); |
| 1033 | 1033 | bool pipeForeignStreamData( |
| 1034 | - PointerHolder<ForeignStreamData>, | |
| 1034 | + std::shared_ptr<ForeignStreamData>, | |
| 1035 | 1035 | Pipeline*, |
| 1036 | 1036 | bool suppress_warnings, |
| 1037 | 1037 | bool will_retry); |
| 1038 | 1038 | static bool pipeStreamData( |
| 1039 | - PointerHolder<QPDF::EncryptionParameters> encp, | |
| 1040 | - PointerHolder<InputSource> file, | |
| 1039 | + std::shared_ptr<QPDF::EncryptionParameters> encp, | |
| 1040 | + std::shared_ptr<InputSource> file, | |
| 1041 | 1041 | QPDF& qpdf_for_warning, |
| 1042 | 1042 | int objid, |
| 1043 | 1043 | int generation, |
| ... | ... | @@ -1064,7 +1064,7 @@ class QPDF |
| 1064 | 1064 | std::map<int, QPDFXRefEntry> const& xref, |
| 1065 | 1065 | std::map<int, qpdf_offset_t> const& lengths, |
| 1066 | 1066 | std::map<int, int> const& obj_renumber, |
| 1067 | - PointerHolder<Buffer>& hint_stream, | |
| 1067 | + std::shared_ptr<Buffer>& hint_stream, | |
| 1068 | 1068 | int& S, |
| 1069 | 1069 | int& O); |
| 1070 | 1070 | |
| ... | ... | @@ -1089,10 +1089,10 @@ class QPDF |
| 1089 | 1089 | |
| 1090 | 1090 | // methods to support encryption -- implemented in QPDF_encryption.cc |
| 1091 | 1091 | static encryption_method_e |
| 1092 | - interpretCF(PointerHolder<EncryptionParameters> encp, QPDFObjectHandle); | |
| 1092 | + interpretCF(std::shared_ptr<EncryptionParameters> encp, QPDFObjectHandle); | |
| 1093 | 1093 | void initializeEncryption(); |
| 1094 | 1094 | static std::string getKeyForObject( |
| 1095 | - PointerHolder<EncryptionParameters> encp, | |
| 1095 | + std::shared_ptr<EncryptionParameters> encp, | |
| 1096 | 1096 | int objid, |
| 1097 | 1097 | int generation, |
| 1098 | 1098 | bool use_aes); |
| ... | ... | @@ -1106,8 +1106,8 @@ class QPDF |
| 1106 | 1106 | EncryptionData const& data, |
| 1107 | 1107 | bool& perms_valid); |
| 1108 | 1108 | static void decryptStream( |
| 1109 | - PointerHolder<EncryptionParameters> encp, | |
| 1110 | - PointerHolder<InputSource> file, | |
| 1109 | + std::shared_ptr<EncryptionParameters> encp, | |
| 1110 | + std::shared_ptr<InputSource> file, | |
| 1111 | 1111 | QPDF& qpdf_for_warning, |
| 1112 | 1112 | Pipeline*& pipeline, |
| 1113 | 1113 | int objid, |
| ... | ... | @@ -1522,7 +1522,7 @@ class QPDF |
| 1522 | 1522 | |
| 1523 | 1523 | unsigned long long unique_id; |
| 1524 | 1524 | QPDFTokenizer tokenizer; |
| 1525 | - PointerHolder<InputSource> file; | |
| 1525 | + std::shared_ptr<InputSource> file; | |
| 1526 | 1526 | std::string last_object_description; |
| 1527 | 1527 | bool provided_password_is_hex_key; |
| 1528 | 1528 | bool ignore_xref_streams; |
| ... | ... | @@ -1530,7 +1530,7 @@ class QPDF |
| 1530 | 1530 | std::ostream* out_stream; |
| 1531 | 1531 | std::ostream* err_stream; |
| 1532 | 1532 | bool attempt_recovery; |
| 1533 | - PointerHolder<EncryptionParameters> encp; | |
| 1533 | + std::shared_ptr<EncryptionParameters> encp; | |
| 1534 | 1534 | std::string pdf_version; |
| 1535 | 1535 | std::map<QPDFObjGen, QPDFXRefEntry> xref_table; |
| 1536 | 1536 | std::set<int> deleted_objects; |
| ... | ... | @@ -1542,7 +1542,7 @@ class QPDF |
| 1542 | 1542 | bool pushed_inherited_attributes_to_pages; |
| 1543 | 1543 | std::vector<QPDFExc> warnings; |
| 1544 | 1544 | std::map<unsigned long long, ObjCopier> object_copiers; |
| 1545 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> copied_streams; | |
| 1545 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> copied_streams; | |
| 1546 | 1546 | // copied_stream_data_provider is owned by copied_streams |
| 1547 | 1547 | CopiedStreamDataProvider* copied_stream_data_provider; |
| 1548 | 1548 | bool reconstructed_xref; |
| ... | ... | @@ -1590,7 +1590,7 @@ class QPDF |
| 1590 | 1590 | // Keep all member variables inside the Members object, which we |
| 1591 | 1591 | // dynamically allocate. This makes it possible to add new private |
| 1592 | 1592 | // members without breaking binary compatibility. |
| 1593 | - PointerHolder<Members> m; | |
| 1593 | + std::shared_ptr<Members> m; | |
| 1594 | 1594 | }; |
| 1595 | 1595 | |
| 1596 | 1596 | #endif // QPDF_HH | ... | ... |
include/qpdf/QPDFAcroFormDocumentHelper.hh
| ... | ... | @@ -305,7 +305,7 @@ class QPDFAcroFormDocumentHelper: public QPDFDocumentHelper |
| 305 | 305 | std::map<std::string, std::set<QPDFObjGen>> name_to_fields; |
| 306 | 306 | }; |
| 307 | 307 | |
| 308 | - PointerHolder<Members> m; | |
| 308 | + std::shared_ptr<Members> m; | |
| 309 | 309 | }; |
| 310 | 310 | |
| 311 | 311 | #endif // QPDFACROFORMDOCUMENTHELPER_HH | ... | ... |
include/qpdf/QPDFAnnotationObjectHelper.hh
include/qpdf/QPDFEFStreamObjectHelper.hh
| ... | ... | @@ -74,7 +74,7 @@ class QPDFEFStreamObjectHelper: public QPDFObjectHelper |
| 74 | 74 | // parameters may be supplied using setters defined below. |
| 75 | 75 | QPDF_DLL |
| 76 | 76 | static QPDFEFStreamObjectHelper |
| 77 | - createEFStream(QPDF& qpdf, PointerHolder<Buffer> data); | |
| 77 | + createEFStream(QPDF& qpdf, std::shared_ptr<Buffer> data); | |
| 78 | 78 | QPDF_DLL |
| 79 | 79 | static QPDFEFStreamObjectHelper |
| 80 | 80 | createEFStream(QPDF& qpdf, std::string const& data); |
| ... | ... | @@ -116,7 +116,7 @@ class QPDFEFStreamObjectHelper: public QPDFObjectHelper |
| 116 | 116 | Members(Members const&) = delete; |
| 117 | 117 | }; |
| 118 | 118 | |
| 119 | - PointerHolder<Members> m; | |
| 119 | + std::shared_ptr<Members> m; | |
| 120 | 120 | }; |
| 121 | 121 | |
| 122 | 122 | #endif // QPDFEFSTREAMOBJECTHELPER_HH | ... | ... |
include/qpdf/QPDFEmbeddedFileDocumentHelper.hh
| ... | ... | @@ -91,7 +91,7 @@ class QPDFEmbeddedFileDocumentHelper: public QPDFDocumentHelper |
| 91 | 91 | std::shared_ptr<QPDFNameTreeObjectHelper> embedded_files; |
| 92 | 92 | }; |
| 93 | 93 | |
| 94 | - PointerHolder<Members> m; | |
| 94 | + std::shared_ptr<Members> m; | |
| 95 | 95 | }; |
| 96 | 96 | |
| 97 | 97 | #endif // QPDFEMBEDDEDFILEDOCUMENTHELPER_HH | ... | ... |
include/qpdf/QPDFFileSpecObjectHelper.hh
include/qpdf/QPDFFormFieldObjectHelper.hh
include/qpdf/QPDFJob.hh
| ... | ... | @@ -453,7 +453,7 @@ class QPDFJob |
| 453 | 453 | std::shared_ptr<QPDF> processFile( |
| 454 | 454 | char const* filename, char const* password, bool used_for_input); |
| 455 | 455 | std::shared_ptr<QPDF> processInputSource( |
| 456 | - PointerHolder<InputSource> is, | |
| 456 | + std::shared_ptr<InputSource> is, | |
| 457 | 457 | char const* password, |
| 458 | 458 | bool used_for_input); |
| 459 | 459 | std::shared_ptr<QPDF> doProcess( | ... | ... |
include/qpdf/QPDFNameTreeObjectHelper.hh
include/qpdf/QPDFNumberTreeObjectHelper.hh
include/qpdf/QPDFObjectHandle.hh
| ... | ... | @@ -434,7 +434,7 @@ class QPDFObjectHandle |
| 434 | 434 | // objects that are ready from the object's input stream. |
| 435 | 435 | QPDF_DLL |
| 436 | 436 | static QPDFObjectHandle parse( |
| 437 | - PointerHolder<InputSource> input, | |
| 437 | + std::shared_ptr<InputSource> input, | |
| 438 | 438 | std::string const& object_description, |
| 439 | 439 | QPDFTokenizer&, |
| 440 | 440 | bool& empty, |
| ... | ... | @@ -490,7 +490,7 @@ class QPDFObjectHandle |
| 490 | 490 | // handle the case of pages whose contents are split across |
| 491 | 491 | // multiple streams. |
| 492 | 492 | QPDF_DLL |
| 493 | - void addTokenFilter(PointerHolder<TokenFilter> token_filter); | |
| 493 | + void addTokenFilter(std::shared_ptr<TokenFilter> token_filter); | |
| 494 | 494 | |
| 495 | 495 | // Legacy helpers for parsing content streams. These methods are |
| 496 | 496 | // not going away, but newer code should call the correspond |
| ... | ... | @@ -506,7 +506,7 @@ class QPDFObjectHandle |
| 506 | 506 | QPDF_DLL |
| 507 | 507 | void pipePageContents(Pipeline* p); |
| 508 | 508 | QPDF_DLL |
| 509 | - void addContentTokenFilter(PointerHolder<TokenFilter> token_filter); | |
| 509 | + void addContentTokenFilter(std::shared_ptr<TokenFilter> token_filter); | |
| 510 | 510 | // End legacy content stream helpers |
| 511 | 511 | |
| 512 | 512 | // Called on a stream to filter the stream as if it were page |
| ... | ... | @@ -618,11 +618,11 @@ class QPDFObjectHandle |
| 618 | 618 | // uncompressed stream data. Example programs are provided that |
| 619 | 619 | // illustrate this. |
| 620 | 620 | QPDF_DLL |
| 621 | - static QPDFObjectHandle newStream(QPDF* qpdf, PointerHolder<Buffer> data); | |
| 621 | + static QPDFObjectHandle newStream(QPDF* qpdf, std::shared_ptr<Buffer> data); | |
| 622 | 622 | |
| 623 | 623 | // Create new stream with data from string. This method will |
| 624 | 624 | // create a copy of the data rather than using the user-provided |
| 625 | - // buffer as in the PointerHolder<Buffer> version of newStream. | |
| 625 | + // buffer as in the std::shared_ptr<Buffer> version of newStream. | |
| 626 | 626 | QPDF_DLL |
| 627 | 627 | static QPDFObjectHandle newStream(QPDF* qpdf, std::string const& data); |
| 628 | 628 | |
| ... | ... | @@ -1089,12 +1089,12 @@ class QPDFObjectHandle |
| 1089 | 1089 | // Returns filtered (uncompressed) stream data. Throws an |
| 1090 | 1090 | // exception if the stream is filtered and we can't decode it. |
| 1091 | 1091 | QPDF_DLL |
| 1092 | - PointerHolder<Buffer> | |
| 1092 | + std::shared_ptr<Buffer> | |
| 1093 | 1093 | getStreamData(qpdf_stream_decode_level_e level = qpdf_dl_generalized); |
| 1094 | 1094 | |
| 1095 | 1095 | // Returns unfiltered (raw) stream data. |
| 1096 | 1096 | QPDF_DLL |
| 1097 | - PointerHolder<Buffer> getRawStreamData(); | |
| 1097 | + std::shared_ptr<Buffer> getRawStreamData(); | |
| 1098 | 1098 | |
| 1099 | 1099 | // Write stream data through the given pipeline. A null pipeline |
| 1100 | 1100 | // value may be used if all you want to do is determine whether a |
| ... | ... | @@ -1201,13 +1201,13 @@ class QPDFObjectHandle |
| 1201 | 1201 | // decryption filters have been applied, is as presented. |
| 1202 | 1202 | QPDF_DLL |
| 1203 | 1203 | void replaceStreamData( |
| 1204 | - PointerHolder<Buffer> data, | |
| 1204 | + std::shared_ptr<Buffer> data, | |
| 1205 | 1205 | QPDFObjectHandle const& filter, |
| 1206 | 1206 | QPDFObjectHandle const& decode_parms); |
| 1207 | 1207 | |
| 1208 | 1208 | // Replace the stream's stream data with the given string. |
| 1209 | 1209 | // This method will create a copy of the data rather than using |
| 1210 | - // the user-provided buffer as in the PointerHolder<Buffer> version | |
| 1210 | + // the user-provided buffer as in the std::shared_ptr<Buffer> version | |
| 1211 | 1211 | // of replaceStreamData. |
| 1212 | 1212 | QPDF_DLL |
| 1213 | 1213 | void replaceStreamData( |
| ... | ... | @@ -1242,7 +1242,7 @@ class QPDFObjectHandle |
| 1242 | 1242 | // compute the length in advance. |
| 1243 | 1243 | QPDF_DLL |
| 1244 | 1244 | void replaceStreamData( |
| 1245 | - PointerHolder<StreamDataProvider> provider, | |
| 1245 | + std::shared_ptr<StreamDataProvider> provider, | |
| 1246 | 1246 | QPDFObjectHandle const& filter, |
| 1247 | 1247 | QPDFObjectHandle const& decode_parms); |
| 1248 | 1248 | |
| ... | ... | @@ -1373,7 +1373,7 @@ class QPDFObjectHandle |
| 1373 | 1373 | friend class QPDF; |
| 1374 | 1374 | |
| 1375 | 1375 | private: |
| 1376 | - static PointerHolder<QPDFObject> | |
| 1376 | + static std::shared_ptr<QPDFObject> | |
| 1377 | 1377 | getObject(QPDFObjectHandle& o) |
| 1378 | 1378 | { |
| 1379 | 1379 | o.dereference(); |
| ... | ... | @@ -1496,10 +1496,10 @@ class QPDFObjectHandle |
| 1496 | 1496 | QPDFObjectHandle, |
| 1497 | 1497 | QPDF*, |
| 1498 | 1498 | std::string const&, |
| 1499 | - PointerHolder<InputSource>, | |
| 1499 | + std::shared_ptr<InputSource>, | |
| 1500 | 1500 | qpdf_offset_t); |
| 1501 | 1501 | static QPDFObjectHandle parseInternal( |
| 1502 | - PointerHolder<InputSource> input, | |
| 1502 | + std::shared_ptr<InputSource> input, | |
| 1503 | 1503 | std::string const& object_description, |
| 1504 | 1504 | QPDFTokenizer& tokenizer, |
| 1505 | 1505 | bool& empty, |
| ... | ... | @@ -1510,7 +1510,7 @@ class QPDFObjectHandle |
| 1510 | 1510 | void parseContentStream_internal( |
| 1511 | 1511 | std::string const& description, ParserCallbacks* callbacks); |
| 1512 | 1512 | static void parseContentStream_data( |
| 1513 | - PointerHolder<Buffer>, | |
| 1513 | + std::shared_ptr<Buffer>, | |
| 1514 | 1514 | std::string const& description, |
| 1515 | 1515 | ParserCallbacks* callbacks, |
| 1516 | 1516 | QPDF* context); |
| ... | ... | @@ -1527,7 +1527,7 @@ class QPDFObjectHandle |
| 1527 | 1527 | QPDF* qpdf; |
| 1528 | 1528 | int objid; // 0 for direct object |
| 1529 | 1529 | int generation; |
| 1530 | - PointerHolder<QPDFObject> obj; | |
| 1530 | + std::shared_ptr<QPDFObject> obj; | |
| 1531 | 1531 | bool reserved; |
| 1532 | 1532 | }; |
| 1533 | 1533 | |
| ... | ... | @@ -1629,7 +1629,7 @@ class QPDFObjectHandle::QPDFDictItems |
| 1629 | 1629 | std::set<std::string>::iterator iter; |
| 1630 | 1630 | bool is_end; |
| 1631 | 1631 | }; |
| 1632 | - PointerHolder<Members> m; | |
| 1632 | + std::shared_ptr<Members> m; | |
| 1633 | 1633 | value_type ivalue; |
| 1634 | 1634 | }; |
| 1635 | 1635 | |
| ... | ... | @@ -1727,7 +1727,7 @@ class QPDFObjectHandle::QPDFArrayItems |
| 1727 | 1727 | int item_number; |
| 1728 | 1728 | bool is_end; |
| 1729 | 1729 | }; |
| 1730 | - PointerHolder<Members> m; | |
| 1730 | + std::shared_ptr<Members> m; | |
| 1731 | 1731 | value_type ivalue; |
| 1732 | 1732 | }; |
| 1733 | 1733 | ... | ... |
include/qpdf/QPDFOutlineDocumentHelper.hh
| ... | ... | @@ -97,11 +97,11 @@ class QPDFOutlineDocumentHelper: public QPDFDocumentHelper |
| 97 | 97 | std::vector<QPDFOutlineObjectHelper> outlines; |
| 98 | 98 | std::set<QPDFObjGen> seen; |
| 99 | 99 | QPDFObjectHandle dest_dict; |
| 100 | - PointerHolder<QPDFNameTreeObjectHelper> names_dest; | |
| 100 | + std::shared_ptr<QPDFNameTreeObjectHelper> names_dest; | |
| 101 | 101 | std::map<QPDFObjGen, std::vector<QPDFOutlineObjectHelper>> by_page; |
| 102 | 102 | }; |
| 103 | 103 | |
| 104 | - PointerHolder<Members> m; | |
| 104 | + std::shared_ptr<Members> m; | |
| 105 | 105 | }; |
| 106 | 106 | |
| 107 | 107 | #endif // QPDFOUTLINEDOCUMENTHELPER_HH | ... | ... |
include/qpdf/QPDFOutlineObjectHelper.hh
| ... | ... | @@ -51,7 +51,7 @@ class QPDFOutlineObjectHelper: public QPDFObjectHelper |
| 51 | 51 | // Return parent pointer. Returns a null pointer if this is a |
| 52 | 52 | // top-level outline. |
| 53 | 53 | QPDF_DLL |
| 54 | - PointerHolder<QPDFOutlineObjectHelper> getParent(); | |
| 54 | + std::shared_ptr<QPDFOutlineObjectHelper> getParent(); | |
| 55 | 55 | |
| 56 | 56 | // Return children as a list. |
| 57 | 57 | QPDF_DLL |
| ... | ... | @@ -112,11 +112,11 @@ class QPDFOutlineObjectHelper: public QPDFObjectHelper |
| 112 | 112 | Members(Members const&); |
| 113 | 113 | |
| 114 | 114 | QPDFOutlineDocumentHelper& dh; |
| 115 | - PointerHolder<QPDFOutlineObjectHelper> parent; | |
| 115 | + std::shared_ptr<QPDFOutlineObjectHelper> parent; | |
| 116 | 116 | std::vector<QPDFOutlineObjectHelper> kids; |
| 117 | 117 | }; |
| 118 | 118 | |
| 119 | - PointerHolder<Members> m; | |
| 119 | + std::shared_ptr<Members> m; | |
| 120 | 120 | }; |
| 121 | 121 | |
| 122 | 122 | #endif // QPDFOUTLINEOBJECTHELPER_HH | ... | ... |
include/qpdf/QPDFPageDocumentHelper.hh
include/qpdf/QPDFPageLabelDocumentHelper.hh
| ... | ... | @@ -96,10 +96,10 @@ class QPDFPageLabelDocumentHelper: public QPDFDocumentHelper |
| 96 | 96 | Members(); |
| 97 | 97 | Members(Members const&); |
| 98 | 98 | |
| 99 | - PointerHolder<QPDFNumberTreeObjectHelper> labels; | |
| 99 | + std::shared_ptr<QPDFNumberTreeObjectHelper> labels; | |
| 100 | 100 | }; |
| 101 | 101 | |
| 102 | - PointerHolder<Members> m; | |
| 102 | + std::shared_ptr<Members> m; | |
| 103 | 103 | }; |
| 104 | 104 | |
| 105 | 105 | #endif // QPDFPAGELABELDOCUMENTHELPER_HH | ... | ... |
include/qpdf/QPDFPageObjectHelper.hh
| ... | ... | @@ -225,7 +225,7 @@ class QPDFPageObjectHelper: public QPDFObjectHelper |
| 225 | 225 | // stream. Also works on form XObjects. |
| 226 | 226 | QPDF_DLL |
| 227 | 227 | void addContentTokenFilter( |
| 228 | - PointerHolder<QPDFObjectHandle::TokenFilter> token_filter); | |
| 228 | + std::shared_ptr<QPDFObjectHandle::TokenFilter> token_filter); | |
| 229 | 229 | |
| 230 | 230 | // A page's resources dictionary maps names to objects elsewhere |
| 231 | 231 | // in the file. This method walks through a page's contents and |
| ... | ... | @@ -397,7 +397,7 @@ class QPDFPageObjectHelper: public QPDFObjectHelper |
| 397 | 397 | Members(Members const&); |
| 398 | 398 | }; |
| 399 | 399 | |
| 400 | - PointerHolder<Members> m; | |
| 400 | + std::shared_ptr<Members> m; | |
| 401 | 401 | }; |
| 402 | 402 | |
| 403 | 403 | #endif // QPDFPAGEOBJECTHELPER_HH | ... | ... |
include/qpdf/QPDFTokenizer.hh
| ... | ... | @@ -173,7 +173,7 @@ class QPDFTokenizer |
| 173 | 173 | // beginning of the token. |
| 174 | 174 | QPDF_DLL |
| 175 | 175 | Token readToken( |
| 176 | - PointerHolder<InputSource> input, | |
| 176 | + std::shared_ptr<InputSource> input, | |
| 177 | 177 | std::string const& context, |
| 178 | 178 | bool allow_bad = false, |
| 179 | 179 | size_t max_len = 0); |
| ... | ... | @@ -187,7 +187,7 @@ class QPDFTokenizer |
| 187 | 187 | // tt_inline_image or tt_bad. This is the only way readToken |
| 188 | 188 | // returns a tt_inline_image token. |
| 189 | 189 | QPDF_DLL |
| 190 | - void expectInlineImage(PointerHolder<InputSource> input); | |
| 190 | + void expectInlineImage(std::shared_ptr<InputSource> input); | |
| 191 | 191 | |
| 192 | 192 | private: |
| 193 | 193 | QPDFTokenizer(QPDFTokenizer const&) = delete; |
| ... | ... | @@ -196,7 +196,7 @@ class QPDFTokenizer |
| 196 | 196 | void resolveLiteral(); |
| 197 | 197 | bool isSpace(char); |
| 198 | 198 | bool isDelimiter(char); |
| 199 | - void findEI(PointerHolder<InputSource> input); | |
| 199 | + void findEI(std::shared_ptr<InputSource> input); | |
| 200 | 200 | |
| 201 | 201 | enum state_e { |
| 202 | 202 | st_top, |
| ... | ... | @@ -246,7 +246,7 @@ class QPDFTokenizer |
| 246 | 246 | bool last_char_was_bs; |
| 247 | 247 | bool last_char_was_cr; |
| 248 | 248 | }; |
| 249 | - PointerHolder<Members> m; | |
| 249 | + std::shared_ptr<Members> m; | |
| 250 | 250 | }; |
| 251 | 251 | |
| 252 | 252 | #endif // QPDFTOKENIZER_HH | ... | ... |
include/qpdf/QPDFWriter.hh
| ... | ... | @@ -128,7 +128,7 @@ class QPDFWriter |
| 128 | 128 | |
| 129 | 129 | // Return getBuffer() in a shared pointer. |
| 130 | 130 | QPDF_DLL |
| 131 | - PointerHolder<Buffer> getBufferSharedPointer(); | |
| 131 | + std::shared_ptr<Buffer> getBufferSharedPointer(); | |
| 132 | 132 | |
| 133 | 133 | // Supply your own pipeline object. Output will be written to |
| 134 | 134 | // this pipeline, and QPDFWriter will call finish() on the |
| ... | ... | @@ -499,7 +499,7 @@ class QPDFWriter |
| 499 | 499 | // If you want to be notified of progress, derive a class from |
| 500 | 500 | // ProgressReporter and override the reportProgress method. |
| 501 | 501 | QPDF_DLL |
| 502 | - void registerProgressReporter(PointerHolder<ProgressReporter>); | |
| 502 | + void registerProgressReporter(std::shared_ptr<ProgressReporter>); | |
| 503 | 503 | |
| 504 | 504 | // Return the PDF version that will be written into the header. |
| 505 | 505 | // Calling this method does all the preparation for writing, so it |
| ... | ... | @@ -550,7 +550,7 @@ class QPDFWriter |
| 550 | 550 | friend class QPDFWriter; |
| 551 | 551 | |
| 552 | 552 | public: |
| 553 | - PipelinePopper(QPDFWriter* qw, PointerHolder<Buffer>* bp = 0) : | |
| 553 | + PipelinePopper(QPDFWriter* qw, std::shared_ptr<Buffer>* bp = 0) : | |
| 554 | 554 | qw(qw), |
| 555 | 555 | bp(bp) |
| 556 | 556 | { |
| ... | ... | @@ -559,7 +559,7 @@ class QPDFWriter |
| 559 | 559 | |
| 560 | 560 | private: |
| 561 | 561 | QPDFWriter* qw; |
| 562 | - PointerHolder<Buffer>* bp; | |
| 562 | + std::shared_ptr<Buffer>* bp; | |
| 563 | 563 | std::string stack_id; |
| 564 | 564 | }; |
| 565 | 565 | friend class PipelinePopper; |
| ... | ... | @@ -567,7 +567,7 @@ class QPDFWriter |
| 567 | 567 | unsigned int bytesNeeded(long long n); |
| 568 | 568 | void writeBinary(unsigned long long val, unsigned int bytes); |
| 569 | 569 | void writeString(std::string const& str); |
| 570 | - void writeBuffer(PointerHolder<Buffer>&); | |
| 570 | + void writeBuffer(std::shared_ptr<Buffer>&); | |
| 571 | 571 | void writeStringQDF(std::string const& str); |
| 572 | 572 | void writeStringNoQDF(std::string const& str); |
| 573 | 573 | void writePad(int nspaces); |
| ... | ... | @@ -587,7 +587,7 @@ class QPDFWriter |
| 587 | 587 | QPDFObjectHandle stream, |
| 588 | 588 | bool& compress_stream, |
| 589 | 589 | bool& is_metadata, |
| 590 | - PointerHolder<Buffer>* stream_data); | |
| 590 | + std::shared_ptr<Buffer>* stream_data); | |
| 591 | 591 | void unparseObject( |
| 592 | 592 | QPDFObjectHandle object, |
| 593 | 593 | int level, |
| ... | ... | @@ -791,7 +791,7 @@ class QPDFWriter |
| 791 | 791 | std::map<int, int> object_to_object_stream_no_gen; |
| 792 | 792 | |
| 793 | 793 | // For progress reporting |
| 794 | - PointerHolder<ProgressReporter> progress_reporter; | |
| 794 | + std::shared_ptr<ProgressReporter> progress_reporter; | |
| 795 | 795 | int events_expected; |
| 796 | 796 | int events_seen; |
| 797 | 797 | int next_progress_report; |
| ... | ... | @@ -800,7 +800,7 @@ class QPDFWriter |
| 800 | 800 | // Keep all member variables inside the Members object, which we |
| 801 | 801 | // dynamically allocate. This makes it possible to add new private |
| 802 | 802 | // members without breaking binary compatibility. |
| 803 | - PointerHolder<Members> m; | |
| 803 | + std::shared_ptr<Members> m; | |
| 804 | 804 | }; |
| 805 | 805 | |
| 806 | 806 | #endif // QPDFWRITER_HH | ... | ... |
include/qpdf/QUtil.hh
| ... | ... | @@ -420,7 +420,7 @@ namespace QUtil |
| 420 | 420 | |
| 421 | 421 | QPDF_DLL |
| 422 | 422 | void read_file_into_memory( |
| 423 | - char const* filename, PointerHolder<char>& file_buf, size_t& size); | |
| 423 | + char const* filename, std::shared_ptr<char>& file_buf, size_t& size); | |
| 424 | 424 | |
| 425 | 425 | // This used to be called strcasecmp, but that is a macro on some |
| 426 | 426 | // platforms, so we have to give it a name that is not likely to | ... | ... |
libqpdf/Buffer.cc
| ... | ... | @@ -52,7 +52,7 @@ void |
| 52 | 52 | Buffer::copy(Buffer const& rhs) |
| 53 | 53 | { |
| 54 | 54 | if (this != &rhs) { |
| 55 | - this->m = PointerHolder<Members>(new Members(rhs.m->size, 0, true)); | |
| 55 | + this->m = std::shared_ptr<Members>(new Members(rhs.m->size, 0, true)); | |
| 56 | 56 | if (this->m->size) { |
| 57 | 57 | memcpy(this->m->buf, rhs.m->buf, this->m->size); |
| 58 | 58 | } | ... | ... |
libqpdf/ClosedFileInputSource.cc
| ... | ... | @@ -26,7 +26,7 @@ void |
| 26 | 26 | ClosedFileInputSource::before() |
| 27 | 27 | { |
| 28 | 28 | if (0 == this->m->fis.get()) { |
| 29 | - this->m->fis = make_pointer_holder<FileInputSource>(); | |
| 29 | + this->m->fis = std::make_shared<FileInputSource>(); | |
| 30 | 30 | this->m->fis->setFilename(this->m->filename.c_str()); |
| 31 | 31 | this->m->fis->seek(this->m->offset, SEEK_SET); |
| 32 | 32 | this->m->fis->setLastOffset(this->last_offset); | ... | ... |
libqpdf/FileInputSource.cc
| ... | ... | @@ -26,7 +26,7 @@ FileInputSource::FileInputSource() : |
| 26 | 26 | void |
| 27 | 27 | FileInputSource::setFilename(char const* filename) |
| 28 | 28 | { |
| 29 | - this->m = PointerHolder<Members>(new Members(true)); | |
| 29 | + this->m = std::shared_ptr<Members>(new Members(true)); | |
| 30 | 30 | this->m->filename = filename; |
| 31 | 31 | this->m->file = QUtil::safe_fopen(filename, "rb"); |
| 32 | 32 | } |
| ... | ... | @@ -34,7 +34,7 @@ FileInputSource::setFilename(char const* filename) |
| 34 | 34 | void |
| 35 | 35 | FileInputSource::setFile(char const* description, FILE* filep, bool close_file) |
| 36 | 36 | { |
| 37 | - this->m = PointerHolder<Members>(new Members(close_file)); | |
| 37 | + this->m = std::shared_ptr<Members>(new Members(close_file)); | |
| 38 | 38 | this->m->filename = description; |
| 39 | 39 | this->m->file = filep; |
| 40 | 40 | this->seek(0, SEEK_SET); | ... | ... |
libqpdf/OffsetInputSource.cc
| ... | ... | @@ -5,7 +5,7 @@ |
| 5 | 5 | #include <stdexcept> |
| 6 | 6 | |
| 7 | 7 | OffsetInputSource::OffsetInputSource( |
| 8 | - PointerHolder<InputSource> proxied, qpdf_offset_t global_offset) : | |
| 8 | + std::shared_ptr<InputSource> proxied, qpdf_offset_t global_offset) : | |
| 9 | 9 | proxied(proxied), |
| 10 | 10 | global_offset(global_offset) |
| 11 | 11 | { | ... | ... |
libqpdf/Pl_Buffer.cc
| ... | ... | @@ -30,13 +30,13 @@ void |
| 30 | 30 | Pl_Buffer::write(unsigned char* buf, size_t len) |
| 31 | 31 | { |
| 32 | 32 | if (this->m->data.get() == 0) { |
| 33 | - this->m->data = make_pointer_holder<Buffer>(len); | |
| 33 | + this->m->data = std::make_shared<Buffer>(len); | |
| 34 | 34 | } |
| 35 | 35 | size_t cur_size = this->m->data->getSize(); |
| 36 | 36 | size_t left = cur_size - this->m->total_size; |
| 37 | 37 | if (left < len) { |
| 38 | 38 | size_t new_size = std::max(this->m->total_size + len, 2 * cur_size); |
| 39 | - auto b = make_pointer_holder<Buffer>(new_size); | |
| 39 | + auto b = std::make_shared<Buffer>(new_size); | |
| 40 | 40 | memcpy(b->getBuffer(), this->m->data->getBuffer(), this->m->total_size); |
| 41 | 41 | this->m->data = b; |
| 42 | 42 | } |
| ... | ... | @@ -72,14 +72,14 @@ Pl_Buffer::getBuffer() |
| 72 | 72 | unsigned char* p = b->getBuffer(); |
| 73 | 73 | memcpy(p, this->m->data->getBuffer(), this->m->total_size); |
| 74 | 74 | } |
| 75 | - this->m = PointerHolder<Members>(new Members()); | |
| 75 | + this->m = std::shared_ptr<Members>(new Members()); | |
| 76 | 76 | return b; |
| 77 | 77 | } |
| 78 | 78 | |
| 79 | -PointerHolder<Buffer> | |
| 79 | +std::shared_ptr<Buffer> | |
| 80 | 80 | Pl_Buffer::getBufferSharedPointer() |
| 81 | 81 | { |
| 82 | - return PointerHolder<Buffer>(getBuffer()); | |
| 82 | + return std::shared_ptr<Buffer>(getBuffer()); | |
| 83 | 83 | } |
| 84 | 84 | |
| 85 | 85 | void |
| ... | ... | @@ -97,5 +97,5 @@ Pl_Buffer::getMallocBuffer(unsigned char** buf, size_t* len) |
| 97 | 97 | } else { |
| 98 | 98 | *buf = nullptr; |
| 99 | 99 | } |
| 100 | - this->m = PointerHolder<Members>(new Members()); | |
| 100 | + this->m = std::shared_ptr<Members>(new Members()); | |
| 101 | 101 | } | ... | ... |
libqpdf/Pl_DCT.cc
| ... | ... | @@ -95,7 +95,7 @@ Pl_DCT::finish() |
| 95 | 95 | { |
| 96 | 96 | this->m->buf.finish(); |
| 97 | 97 | |
| 98 | - // Using a PointerHolder<Buffer> here and passing it into compress | |
| 98 | + // Using a std::shared_ptr<Buffer> here and passing it into compress | |
| 99 | 99 | // and decompress causes a memory leak with setjmp/longjmp. Just |
| 100 | 100 | // use a pointer and delete it. |
| 101 | 101 | Buffer* b = this->m->buf.getBuffer(); | ... | ... |
libqpdf/Pl_PNGFilter.cc
| ... | ... | @@ -48,9 +48,9 @@ Pl_PNGFilter::Pl_PNGFilter( |
| 48 | 48 | } |
| 49 | 49 | this->bytes_per_row = bpr & UINT_MAX; |
| 50 | 50 | this->buf1 = |
| 51 | - make_array_pointer_holder<unsigned char>(this->bytes_per_row + 1); | |
| 51 | + QUtil::make_shared_array<unsigned char>(this->bytes_per_row + 1); | |
| 52 | 52 | this->buf2 = |
| 53 | - make_array_pointer_holder<unsigned char>(this->bytes_per_row + 1); | |
| 53 | + QUtil::make_shared_array<unsigned char>(this->bytes_per_row + 1); | |
| 54 | 54 | memset(this->buf1.get(), 0, this->bytes_per_row + 1); |
| 55 | 55 | memset(this->buf2.get(), 0, this->bytes_per_row + 1); |
| 56 | 56 | this->cur_row = this->buf1.get(); | ... | ... |
libqpdf/Pl_QPDFTokenizer.cc
| ... | ... | @@ -44,7 +44,7 @@ void |
| 44 | 44 | Pl_QPDFTokenizer::finish() |
| 45 | 45 | { |
| 46 | 46 | this->m->buf.finish(); |
| 47 | - auto input = PointerHolder<InputSource>( | |
| 47 | + auto input = std::shared_ptr<InputSource>( | |
| 48 | 48 | // line-break |
| 49 | 49 | new BufferInputSource( |
| 50 | 50 | "tokenizer data", this->m->buf.getBuffer(), true)); | ... | ... |
libqpdf/Pl_RC4.cc
| ... | ... | @@ -12,7 +12,7 @@ Pl_RC4::Pl_RC4( |
| 12 | 12 | out_bufsize(out_bufsize), |
| 13 | 13 | rc4(key_data, key_len) |
| 14 | 14 | { |
| 15 | - this->outbuf = make_array_pointer_holder<unsigned char>(out_bufsize); | |
| 15 | + this->outbuf = QUtil::make_shared_array<unsigned char>(out_bufsize); | |
| 16 | 16 | } |
| 17 | 17 | |
| 18 | 18 | Pl_RC4::~Pl_RC4() | ... | ... |
libqpdf/Pl_TIFFPredictor.cc
| ... | ... | @@ -41,7 +41,7 @@ Pl_TIFFPredictor::Pl_TIFFPredictor( |
| 41 | 41 | } |
| 42 | 42 | this->bytes_per_row = bpr & UINT_MAX; |
| 43 | 43 | this->cur_row = |
| 44 | - make_array_pointer_holder<unsigned char>(this->bytes_per_row); | |
| 44 | + QUtil::make_shared_array<unsigned char>(this->bytes_per_row); | |
| 45 | 45 | memset(this->cur_row.get(), 0, this->bytes_per_row); |
| 46 | 46 | } |
| 47 | 47 | ... | ... |
libqpdf/QPDF.cc
| ... | ... | @@ -106,8 +106,8 @@ class InvalidInputSource: public InputSource |
| 106 | 106 | }; |
| 107 | 107 | |
| 108 | 108 | QPDF::ForeignStreamData::ForeignStreamData( |
| 109 | - PointerHolder<EncryptionParameters> encp, | |
| 110 | - PointerHolder<InputSource> file, | |
| 109 | + std::shared_ptr<EncryptionParameters> encp, | |
| 110 | + std::shared_ptr<InputSource> file, | |
| 111 | 111 | int foreign_objid, |
| 112 | 112 | int foreign_generation, |
| 113 | 113 | qpdf_offset_t offset, |
| ... | ... | @@ -138,7 +138,7 @@ QPDF::CopiedStreamDataProvider::provideStreamData( |
| 138 | 138 | bool suppress_warnings, |
| 139 | 139 | bool will_retry) |
| 140 | 140 | { |
| 141 | - PointerHolder<ForeignStreamData> foreign_data = | |
| 141 | + std::shared_ptr<ForeignStreamData> foreign_data = | |
| 142 | 142 | this->foreign_stream_data[QPDFObjGen(objid, generation)]; |
| 143 | 143 | bool result = false; |
| 144 | 144 | if (foreign_data.get()) { |
| ... | ... | @@ -165,7 +165,8 @@ QPDF::CopiedStreamDataProvider::registerForeignStream( |
| 165 | 165 | |
| 166 | 166 | void |
| 167 | 167 | QPDF::CopiedStreamDataProvider::registerForeignStream( |
| 168 | - QPDFObjGen const& local_og, PointerHolder<ForeignStreamData> foreign_stream) | |
| 168 | + QPDFObjGen const& local_og, | |
| 169 | + std::shared_ptr<ForeignStreamData> foreign_stream) | |
| 169 | 170 | { |
| 170 | 171 | this->foreign_stream_data[local_og] = foreign_stream; |
| 171 | 172 | } |
| ... | ... | @@ -249,7 +250,7 @@ QPDF::~QPDF() |
| 249 | 250 | // If two objects are mutually referential (through each object |
| 250 | 251 | // having an array or dictionary that contains an indirect |
| 251 | 252 | // reference to the other), the circular references in the |
| 252 | - // PointerHolder objects will prevent the objects from being | |
| 253 | + // std::shared_ptr objects will prevent the objects from being | |
| 253 | 254 | // deleted. Walk through all objects in the object cache, which |
| 254 | 255 | // is those objects that we read from the file, and break all |
| 255 | 256 | // resolved references. At this point, obviously no one is still |
| ... | ... | @@ -274,7 +275,7 @@ QPDF::processFile(char const* filename, char const* password) |
| 274 | 275 | { |
| 275 | 276 | FileInputSource* fi = new FileInputSource(); |
| 276 | 277 | fi->setFilename(filename); |
| 277 | - processInputSource(PointerHolder<InputSource>(fi), password); | |
| 278 | + processInputSource(std::shared_ptr<InputSource>(fi), password); | |
| 278 | 279 | } |
| 279 | 280 | |
| 280 | 281 | void |
| ... | ... | @@ -283,7 +284,7 @@ QPDF::processFile( |
| 283 | 284 | { |
| 284 | 285 | FileInputSource* fi = new FileInputSource(); |
| 285 | 286 | fi->setFile(description, filep, close_file); |
| 286 | - processInputSource(PointerHolder<InputSource>(fi), password); | |
| 287 | + processInputSource(std::shared_ptr<InputSource>(fi), password); | |
| 287 | 288 | } |
| 288 | 289 | |
| 289 | 290 | void |
| ... | ... | @@ -294,7 +295,7 @@ QPDF::processMemoryFile( |
| 294 | 295 | char const* password) |
| 295 | 296 | { |
| 296 | 297 | processInputSource( |
| 297 | - PointerHolder<InputSource>( | |
| 298 | + std::shared_ptr<InputSource>( | |
| 298 | 299 | // line-break |
| 299 | 300 | new BufferInputSource( |
| 300 | 301 | description, |
| ... | ... | @@ -305,7 +306,7 @@ QPDF::processMemoryFile( |
| 305 | 306 | |
| 306 | 307 | void |
| 307 | 308 | QPDF::processInputSource( |
| 308 | - PointerHolder<InputSource> source, char const* password) | |
| 309 | + std::shared_ptr<InputSource> source, char const* password) | |
| 309 | 310 | { |
| 310 | 311 | this->m->file = source; |
| 311 | 312 | parse(password); |
| ... | ... | @@ -314,7 +315,7 @@ QPDF::processInputSource( |
| 314 | 315 | void |
| 315 | 316 | QPDF::closeInputSource() |
| 316 | 317 | { |
| 317 | - this->m->file = PointerHolder<InputSource>(new InvalidInputSource()); | |
| 318 | + this->m->file = std::shared_ptr<InputSource>(new InvalidInputSource()); | |
| 318 | 319 | } |
| 319 | 320 | |
| 320 | 321 | void |
| ... | ... | @@ -425,7 +426,7 @@ QPDF::findHeader() |
| 425 | 426 | // offsets in the file are such that 0 points to the |
| 426 | 427 | // beginning of the header. |
| 427 | 428 | QTC::TC("qpdf", "QPDF global offset"); |
| 428 | - this->m->file = PointerHolder<InputSource>( | |
| 429 | + this->m->file = std::shared_ptr<InputSource>( | |
| 429 | 430 | new OffsetInputSource(this->m->file, global_offset)); |
| 430 | 431 | } |
| 431 | 432 | } |
| ... | ... | @@ -1182,7 +1183,7 @@ QPDF::processXRefStream(qpdf_offset_t xref_offset, QPDFObjectHandle& xref_obj) |
| 1182 | 1183 | // that this multiplication does not cause an overflow. |
| 1183 | 1184 | size_t expected_size = entry_size * num_entries; |
| 1184 | 1185 | |
| 1185 | - PointerHolder<Buffer> bp = xref_obj.getStreamData(qpdf_dl_specialized); | |
| 1186 | + std::shared_ptr<Buffer> bp = xref_obj.getStreamData(qpdf_dl_specialized); | |
| 1186 | 1187 | size_t actual_size = bp->getSize(); |
| 1187 | 1188 | |
| 1188 | 1189 | if (expected_size != actual_size) { |
| ... | ... | @@ -1516,7 +1517,7 @@ QPDF::setLastObjectDescription( |
| 1516 | 1517 | |
| 1517 | 1518 | QPDFObjectHandle |
| 1518 | 1519 | QPDF::readObject( |
| 1519 | - PointerHolder<InputSource> input, | |
| 1520 | + std::shared_ptr<InputSource> input, | |
| 1520 | 1521 | std::string const& description, |
| 1521 | 1522 | int objid, |
| 1522 | 1523 | int generation, |
| ... | ... | @@ -1526,11 +1527,11 @@ QPDF::readObject( |
| 1526 | 1527 | qpdf_offset_t offset = input->tell(); |
| 1527 | 1528 | |
| 1528 | 1529 | bool empty = false; |
| 1529 | - PointerHolder<StringDecrypter> decrypter_ph; | |
| 1530 | + std::shared_ptr<StringDecrypter> decrypter_ph; | |
| 1530 | 1531 | StringDecrypter* decrypter = 0; |
| 1531 | 1532 | if (this->m->encp->encrypted && (!in_object_stream)) { |
| 1532 | 1533 | decrypter_ph = |
| 1533 | - make_pointer_holder<StringDecrypter>(this, objid, generation); | |
| 1534 | + std::make_shared<StringDecrypter>(this, objid, generation); | |
| 1534 | 1535 | decrypter = decrypter_ph.get(); |
| 1535 | 1536 | } |
| 1536 | 1537 | QPDFObjectHandle object = QPDFObjectHandle::parse( |
| ... | ... | @@ -1706,7 +1707,7 @@ QPDF::findEndstream() |
| 1706 | 1707 | |
| 1707 | 1708 | size_t |
| 1708 | 1709 | QPDF::recoverStreamLength( |
| 1709 | - PointerHolder<InputSource> input, | |
| 1710 | + std::shared_ptr<InputSource> input, | |
| 1710 | 1711 | int objid, |
| 1711 | 1712 | int generation, |
| 1712 | 1713 | qpdf_offset_t stream_offset) |
| ... | ... | @@ -1784,7 +1785,7 @@ QPDF::recoverStreamLength( |
| 1784 | 1785 | } |
| 1785 | 1786 | |
| 1786 | 1787 | QPDFTokenizer::Token |
| 1787 | -QPDF::readToken(PointerHolder<InputSource> input, size_t max_len) | |
| 1788 | +QPDF::readToken(std::shared_ptr<InputSource> input, size_t max_len) | |
| 1788 | 1789 | { |
| 1789 | 1790 | return this->m->tokenizer.readToken( |
| 1790 | 1791 | input, this->m->last_object_description, true, max_len); |
| ... | ... | @@ -1971,7 +1972,7 @@ QPDF::readObjectAtOffset( |
| 1971 | 1972 | } |
| 1972 | 1973 | |
| 1973 | 1974 | bool |
| 1974 | -QPDF::objectChanged(QPDFObjGen const& og, PointerHolder<QPDFObject>& oph) | |
| 1975 | +QPDF::objectChanged(QPDFObjGen const& og, std::shared_ptr<QPDFObject>& oph) | |
| 1975 | 1976 | { |
| 1976 | 1977 | // See if the object cached at og, if any, is the one passed in. |
| 1977 | 1978 | // QPDFObjectHandle uses this to detect outdated handles to |
| ... | ... | @@ -1992,7 +1993,7 @@ QPDF::objectChanged(QPDFObjGen const& og, PointerHolder<QPDFObject>& oph) |
| 1992 | 1993 | return (c->second.object.get() != oph.get()); |
| 1993 | 1994 | } |
| 1994 | 1995 | |
| 1995 | -PointerHolder<QPDFObject> | |
| 1996 | +std::shared_ptr<QPDFObject> | |
| 1996 | 1997 | QPDF::resolve(int objid, int generation) |
| 1997 | 1998 | { |
| 1998 | 1999 | // Check object cache before checking xref table. This allows us |
| ... | ... | @@ -2011,7 +2012,7 @@ QPDF::resolve(int objid, int generation) |
| 2011 | 2012 | this->m->file->getLastOffset(), |
| 2012 | 2013 | ("loop detected resolving object " + QUtil::int_to_string(objid) + |
| 2013 | 2014 | " " + QUtil::int_to_string(generation)))); |
| 2014 | - return PointerHolder<QPDFObject>(new QPDF_Null); | |
| 2015 | + return std::shared_ptr<QPDFObject>(new QPDF_Null); | |
| 2015 | 2016 | } |
| 2016 | 2017 | ResolveRecorder rr(this, og); |
| 2017 | 2018 | |
| ... | ... | @@ -2071,7 +2072,7 @@ QPDF::resolve(int objid, int generation) |
| 2071 | 2072 | ObjCache(QPDFObjectHandle::ObjAccessor::getObject(oh), -1, -1); |
| 2072 | 2073 | } |
| 2073 | 2074 | |
| 2074 | - PointerHolder<QPDFObject> result(this->m->obj_cache[og].object); | |
| 2075 | + std::shared_ptr<QPDFObject> result(this->m->obj_cache[og].object); | |
| 2075 | 2076 | if (!result->hasDescription()) { |
| 2076 | 2077 | result->setDescription( |
| 2077 | 2078 | this, |
| ... | ... | @@ -2135,8 +2136,8 @@ QPDF::resolveObjectsInStream(int obj_stream_number) |
| 2135 | 2136 | |
| 2136 | 2137 | std::map<int, int> offsets; |
| 2137 | 2138 | |
| 2138 | - PointerHolder<Buffer> bp = obj_stream.getStreamData(qpdf_dl_specialized); | |
| 2139 | - auto input = PointerHolder<InputSource>( | |
| 2139 | + std::shared_ptr<Buffer> bp = obj_stream.getStreamData(qpdf_dl_specialized); | |
| 2140 | + auto input = std::shared_ptr<InputSource>( | |
| 2140 | 2141 | // line-break |
| 2141 | 2142 | new BufferInputSource( |
| 2142 | 2143 | (this->m->file->getName() + " object stream " + |
| ... | ... | @@ -2496,7 +2497,7 @@ QPDF::copyStreamData(QPDFObjectHandle result, QPDFObjectHandle foreign) |
| 2496 | 2497 | this->m->copied_stream_data_provider = |
| 2497 | 2498 | new CopiedStreamDataProvider(*this); |
| 2498 | 2499 | this->m->copied_streams = |
| 2499 | - PointerHolder<QPDFObjectHandle::StreamDataProvider>( | |
| 2500 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider>( | |
| 2500 | 2501 | this->m->copied_stream_data_provider); |
| 2501 | 2502 | } |
| 2502 | 2503 | QPDFObjGen local_og(result.getObjGen()); |
| ... | ... | @@ -2513,7 +2514,7 @@ QPDF::copyStreamData(QPDFObjectHandle result, QPDFObjectHandle foreign) |
| 2513 | 2514 | throw std::logic_error("unable to retrieve underlying" |
| 2514 | 2515 | " stream object from foreign stream"); |
| 2515 | 2516 | } |
| 2516 | - PointerHolder<Buffer> stream_buffer = stream->getStreamDataBuffer(); | |
| 2517 | + std::shared_ptr<Buffer> stream_buffer = stream->getStreamDataBuffer(); | |
| 2517 | 2518 | if ((foreign_stream_qpdf->m->immediate_copy_from) && |
| 2518 | 2519 | (stream_buffer.get() == 0)) { |
| 2519 | 2520 | // Pull the stream data into a buffer before attempting |
| ... | ... | @@ -2527,7 +2528,7 @@ QPDF::copyStreamData(QPDFObjectHandle result, QPDFObjectHandle foreign) |
| 2527 | 2528 | old_dict.getKey("/DecodeParms")); |
| 2528 | 2529 | stream_buffer = stream->getStreamDataBuffer(); |
| 2529 | 2530 | } |
| 2530 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> stream_provider = | |
| 2531 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> stream_provider = | |
| 2531 | 2532 | stream->getStreamDataProvider(); |
| 2532 | 2533 | if (stream_buffer.get()) { |
| 2533 | 2534 | QTC::TC("qpdf", "QPDF copy foreign stream with buffer"); |
| ... | ... | @@ -2543,7 +2544,7 @@ QPDF::copyStreamData(QPDFObjectHandle result, QPDFObjectHandle foreign) |
| 2543 | 2544 | dict.getKey("/Filter"), |
| 2544 | 2545 | dict.getKey("/DecodeParms")); |
| 2545 | 2546 | } else { |
| 2546 | - auto foreign_stream_data = make_pointer_holder<ForeignStreamData>( | |
| 2547 | + auto foreign_stream_data = std::make_shared<ForeignStreamData>( | |
| 2547 | 2548 | foreign_stream_qpdf->m->encp, |
| 2548 | 2549 | foreign_stream_qpdf->m->file, |
| 2549 | 2550 | foreign.getObjectID(), |
| ... | ... | @@ -2758,8 +2759,8 @@ QPDF::getCompressibleObjGens() |
| 2758 | 2759 | |
| 2759 | 2760 | bool |
| 2760 | 2761 | QPDF::pipeStreamData( |
| 2761 | - PointerHolder<EncryptionParameters> encp, | |
| 2762 | - PointerHolder<InputSource> file, | |
| 2762 | + std::shared_ptr<EncryptionParameters> encp, | |
| 2763 | + std::shared_ptr<InputSource> file, | |
| 2763 | 2764 | QPDF& qpdf_for_warning, |
| 2764 | 2765 | int objid, |
| 2765 | 2766 | int generation, |
| ... | ... | @@ -2870,7 +2871,7 @@ QPDF::pipeStreamData( |
| 2870 | 2871 | |
| 2871 | 2872 | bool |
| 2872 | 2873 | QPDF::pipeForeignStreamData( |
| 2873 | - PointerHolder<ForeignStreamData> foreign, | |
| 2874 | + std::shared_ptr<ForeignStreamData> foreign, | |
| 2874 | 2875 | Pipeline* pipeline, |
| 2875 | 2876 | bool suppress_warnings, |
| 2876 | 2877 | bool will_retry) | ... | ... |
libqpdf/QPDFAcroFormDocumentHelper.cc
| ... | ... | @@ -772,7 +772,7 @@ QPDFAcroFormDocumentHelper::adjustAppearanceStream( |
| 772 | 772 | QTC::TC("qpdf", "QPDFAcroFormDocumentHelper AP parse error"); |
| 773 | 773 | } |
| 774 | 774 | auto rr = new ResourceReplacer(dr_map, rf.getNamesByResourceType()); |
| 775 | - auto tf = PointerHolder<QPDFObjectHandle::TokenFilter>(rr); | |
| 775 | + auto tf = std::shared_ptr<QPDFObjectHandle::TokenFilter>(rr); | |
| 776 | 776 | stream.addTokenFilter(tf); |
| 777 | 777 | } catch (std::exception& e) { |
| 778 | 778 | // No way to reproduce in test suite right now since error |
| ... | ... | @@ -792,13 +792,13 @@ QPDFAcroFormDocumentHelper::transformAnnotations( |
| 792 | 792 | QPDF* from_qpdf, |
| 793 | 793 | QPDFAcroFormDocumentHelper* from_afdh) |
| 794 | 794 | { |
| 795 | - PointerHolder<QPDFAcroFormDocumentHelper> afdhph; | |
| 795 | + std::shared_ptr<QPDFAcroFormDocumentHelper> afdhph; | |
| 796 | 796 | if (!from_qpdf) { |
| 797 | 797 | // Assume these are from the same QPDF. |
| 798 | 798 | from_qpdf = &this->qpdf; |
| 799 | 799 | from_afdh = this; |
| 800 | 800 | } else if ((from_qpdf != &this->qpdf) && (!from_afdh)) { |
| 801 | - afdhph = make_pointer_holder<QPDFAcroFormDocumentHelper>(*from_qpdf); | |
| 801 | + afdhph = std::make_shared<QPDFAcroFormDocumentHelper>(*from_qpdf); | |
| 802 | 802 | from_afdh = afdhph.get(); |
| 803 | 803 | } |
| 804 | 804 | bool foreign = (from_qpdf != &this->qpdf); | ... | ... |
libqpdf/QPDFEFStreamObjectHelper.cc
| ... | ... | @@ -92,7 +92,8 @@ QPDFEFStreamObjectHelper::getChecksum() |
| 92 | 92 | } |
| 93 | 93 | |
| 94 | 94 | QPDFEFStreamObjectHelper |
| 95 | -QPDFEFStreamObjectHelper::createEFStream(QPDF& qpdf, PointerHolder<Buffer> data) | |
| 95 | +QPDFEFStreamObjectHelper::createEFStream( | |
| 96 | + QPDF& qpdf, std::shared_ptr<Buffer> data) | |
| 96 | 97 | { |
| 97 | 98 | return newFromStream(QPDFObjectHandle::newStream(&qpdf, data)); |
| 98 | 99 | } | ... | ... |
libqpdf/QPDFFormFieldObjectHelper.cc
| ... | ... | @@ -915,6 +915,6 @@ QPDFFormFieldObjectHelper::generateTextAppearance( |
| 915 | 915 | |
| 916 | 916 | AS.addTokenFilter( |
| 917 | 917 | // line-break |
| 918 | - PointerHolder<QPDFObjectHandle::TokenFilter>( | |
| 918 | + std::shared_ptr<QPDFObjectHandle::TokenFilter>( | |
| 919 | 919 | new ValueSetter(DA, V, opt, tf, bbox))); |
| 920 | 920 | } | ... | ... |
libqpdf/QPDFJob.cc
| ... | ... | @@ -1879,7 +1879,7 @@ QPDFJob::processFile( |
| 1879 | 1879 | |
| 1880 | 1880 | std::shared_ptr<QPDF> |
| 1881 | 1881 | QPDFJob::processInputSource( |
| 1882 | - PointerHolder<InputSource> is, char const* password, bool used_for_input) | |
| 1882 | + std::shared_ptr<InputSource> is, char const* password, bool used_for_input) | |
| 1883 | 1883 | { |
| 1884 | 1884 | auto f1 = std::mem_fn(&QPDF::processInputSource); |
| 1885 | 1885 | auto fn = std::bind(f1, std::placeholders::_1, is, std::placeholders::_2); |
| ... | ... | @@ -2238,7 +2238,7 @@ QPDFJob::handleTransformations(QPDF& pdf) |
| 2238 | 2238 | m->oi_min_height, |
| 2239 | 2239 | m->oi_min_area, |
| 2240 | 2240 | image); |
| 2241 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> sdp(io); | |
| 2241 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> sdp(io); | |
| 2242 | 2242 | if (io->evaluate( |
| 2243 | 2243 | "image " + name + " on page " + |
| 2244 | 2244 | QUtil::int_to_string(pageno))) { |
| ... | ... | @@ -2494,17 +2494,17 @@ QPDFJob::handlePageSpecs( |
| 2494 | 2494 | cout << prefix << ": processing " << page_spec.filename |
| 2495 | 2495 | << std::endl; |
| 2496 | 2496 | }); |
| 2497 | - PointerHolder<InputSource> is; | |
| 2497 | + std::shared_ptr<InputSource> is; | |
| 2498 | 2498 | ClosedFileInputSource* cis = 0; |
| 2499 | 2499 | if (!m->keep_files_open) { |
| 2500 | 2500 | QTC::TC("qpdf", "QPDFJob keep files open n"); |
| 2501 | 2501 | cis = new ClosedFileInputSource(page_spec.filename.c_str()); |
| 2502 | - is = PointerHolder<InputSource>(cis); | |
| 2502 | + is = std::shared_ptr<InputSource>(cis); | |
| 2503 | 2503 | cis->stayOpen(true); |
| 2504 | 2504 | } else { |
| 2505 | 2505 | QTC::TC("qpdf", "QPDFJob keep files open y"); |
| 2506 | 2506 | FileInputSource* fis = new FileInputSource(); |
| 2507 | - is = PointerHolder<InputSource>(fis); | |
| 2507 | + is = std::shared_ptr<InputSource>(fis); | |
| 2508 | 2508 | fis->setFilename(page_spec.filename.c_str()); |
| 2509 | 2509 | } |
| 2510 | 2510 | std::shared_ptr<QPDF> qpdf_ph = |
| ... | ... | @@ -3064,12 +3064,13 @@ QPDFJob::setWriterOptions(QPDF& pdf, QPDFWriter& w) |
| 3064 | 3064 | w.forcePDFVersion(version, extension_level); |
| 3065 | 3065 | } |
| 3066 | 3066 | if (m->progress && m->outfilename) { |
| 3067 | - w.registerProgressReporter(PointerHolder<QPDFWriter::ProgressReporter>( | |
| 3068 | - // line-break | |
| 3069 | - new ProgressReporter( | |
| 3070 | - *(this->m->cout), | |
| 3071 | - this->m->message_prefix, | |
| 3072 | - m->outfilename.get()))); | |
| 3067 | + w.registerProgressReporter( | |
| 3068 | + std::shared_ptr<QPDFWriter::ProgressReporter>( | |
| 3069 | + // line-break | |
| 3070 | + new ProgressReporter( | |
| 3071 | + *(this->m->cout), | |
| 3072 | + this->m->message_prefix, | |
| 3073 | + m->outfilename.get()))); | |
| 3073 | 3074 | } |
| 3074 | 3075 | } |
| 3075 | 3076 | ... | ... |
libqpdf/QPDFJob_config.cc
| ... | ... | @@ -685,7 +685,7 @@ QPDFJob::Config::showObject(std::string const& parameter) |
| 685 | 685 | QPDFJob::Config* |
| 686 | 686 | QPDFJob::Config::jobJsonFile(std::string const& parameter) |
| 687 | 687 | { |
| 688 | - PointerHolder<char> file_buf; | |
| 688 | + std::shared_ptr<char> file_buf; | |
| 689 | 689 | size_t size; |
| 690 | 690 | QUtil::read_file_into_memory(parameter.c_str(), file_buf, size); |
| 691 | 691 | try { | ... | ... |
libqpdf/QPDFObjectHandle.cc
| ... | ... | @@ -252,7 +252,7 @@ QPDFObjectHandle::setObjectDescriptionFromInput( |
| 252 | 252 | QPDFObjectHandle object, |
| 253 | 253 | QPDF* context, |
| 254 | 254 | std::string const& description, |
| 255 | - PointerHolder<InputSource> input, | |
| 255 | + std::shared_ptr<InputSource> input, | |
| 256 | 256 | qpdf_offset_t offset) |
| 257 | 257 | { |
| 258 | 258 | object.setObjectDescription( |
| ... | ... | @@ -1337,14 +1337,14 @@ QPDFObjectHandle::replaceDict(QPDFObjectHandle new_dict) |
| 1337 | 1337 | dynamic_cast<QPDF_Stream*>(obj.get())->replaceDict(new_dict); |
| 1338 | 1338 | } |
| 1339 | 1339 | |
| 1340 | -PointerHolder<Buffer> | |
| 1340 | +std::shared_ptr<Buffer> | |
| 1341 | 1341 | QPDFObjectHandle::getStreamData(qpdf_stream_decode_level_e level) |
| 1342 | 1342 | { |
| 1343 | 1343 | assertStream(); |
| 1344 | 1344 | return dynamic_cast<QPDF_Stream*>(obj.get())->getStreamData(level); |
| 1345 | 1345 | } |
| 1346 | 1346 | |
| 1347 | -PointerHolder<Buffer> | |
| 1347 | +std::shared_ptr<Buffer> | |
| 1348 | 1348 | QPDFObjectHandle::getRawStreamData() |
| 1349 | 1349 | { |
| 1350 | 1350 | assertStream(); |
| ... | ... | @@ -1410,7 +1410,7 @@ QPDFObjectHandle::pipeStreamData( |
| 1410 | 1410 | |
| 1411 | 1411 | void |
| 1412 | 1412 | QPDFObjectHandle::replaceStreamData( |
| 1413 | - PointerHolder<Buffer> data, | |
| 1413 | + std::shared_ptr<Buffer> data, | |
| 1414 | 1414 | QPDFObjectHandle const& filter, |
| 1415 | 1415 | QPDFObjectHandle const& decode_parms) |
| 1416 | 1416 | { |
| ... | ... | @@ -1426,7 +1426,7 @@ QPDFObjectHandle::replaceStreamData( |
| 1426 | 1426 | QPDFObjectHandle const& decode_parms) |
| 1427 | 1427 | { |
| 1428 | 1428 | assertStream(); |
| 1429 | - auto b = make_pointer_holder<Buffer>(data.length()); | |
| 1429 | + auto b = std::make_shared<Buffer>(data.length()); | |
| 1430 | 1430 | unsigned char* bp = b->getBuffer(); |
| 1431 | 1431 | memcpy(bp, data.c_str(), data.length()); |
| 1432 | 1432 | dynamic_cast<QPDF_Stream*>(obj.get())->replaceStreamData( |
| ... | ... | @@ -1435,7 +1435,7 @@ QPDFObjectHandle::replaceStreamData( |
| 1435 | 1435 | |
| 1436 | 1436 | void |
| 1437 | 1437 | QPDFObjectHandle::replaceStreamData( |
| 1438 | - PointerHolder<StreamDataProvider> provider, | |
| 1438 | + std::shared_ptr<StreamDataProvider> provider, | |
| 1439 | 1439 | QPDFObjectHandle const& filter, |
| 1440 | 1440 | QPDFObjectHandle const& decode_parms) |
| 1441 | 1441 | { |
| ... | ... | @@ -1487,7 +1487,7 @@ QPDFObjectHandle::replaceStreamData( |
| 1487 | 1487 | { |
| 1488 | 1488 | assertStream(); |
| 1489 | 1489 | auto sdp = |
| 1490 | - PointerHolder<StreamDataProvider>(new FunctionProvider(provider)); | |
| 1490 | + std::shared_ptr<StreamDataProvider>(new FunctionProvider(provider)); | |
| 1491 | 1491 | dynamic_cast<QPDF_Stream*>(obj.get())->replaceStreamData( |
| 1492 | 1492 | sdp, filter, decode_parms); |
| 1493 | 1493 | } |
| ... | ... | @@ -1500,7 +1500,7 @@ QPDFObjectHandle::replaceStreamData( |
| 1500 | 1500 | { |
| 1501 | 1501 | assertStream(); |
| 1502 | 1502 | auto sdp = |
| 1503 | - PointerHolder<StreamDataProvider>(new FunctionProvider(provider)); | |
| 1503 | + std::shared_ptr<StreamDataProvider>(new FunctionProvider(provider)); | |
| 1504 | 1504 | dynamic_cast<QPDF_Stream*>(obj.get())->replaceStreamData( |
| 1505 | 1505 | sdp, filter, decode_parms); |
| 1506 | 1506 | } |
| ... | ... | @@ -1694,7 +1694,7 @@ QPDFObjectHandle::coalesceContentStreams() |
| 1694 | 1694 | QPDFObjectHandle new_contents = newStream(qpdf); |
| 1695 | 1695 | this->replaceKey("/Contents", new_contents); |
| 1696 | 1696 | |
| 1697 | - auto provider = PointerHolder<StreamDataProvider>( | |
| 1697 | + auto provider = std::shared_ptr<StreamDataProvider>( | |
| 1698 | 1698 | new CoalesceProvider(*this, contents)); |
| 1699 | 1699 | new_contents.replaceStreamData(provider, newNull(), newNull()); |
| 1700 | 1700 | } |
| ... | ... | @@ -1772,7 +1772,7 @@ QPDFObjectHandle::parse( |
| 1772 | 1772 | std::string const& object_str, |
| 1773 | 1773 | std::string const& object_description) |
| 1774 | 1774 | { |
| 1775 | - auto input = PointerHolder<InputSource>( | |
| 1775 | + auto input = std::shared_ptr<InputSource>( | |
| 1776 | 1776 | new BufferInputSource("parsed object", object_str)); |
| 1777 | 1777 | QPDFTokenizer tokenizer; |
| 1778 | 1778 | bool empty = false; |
| ... | ... | @@ -1908,13 +1908,13 @@ QPDFObjectHandle::parseContentStream_internal( |
| 1908 | 1908 | |
| 1909 | 1909 | void |
| 1910 | 1910 | QPDFObjectHandle::parseContentStream_data( |
| 1911 | - PointerHolder<Buffer> stream_data, | |
| 1911 | + std::shared_ptr<Buffer> stream_data, | |
| 1912 | 1912 | std::string const& description, |
| 1913 | 1913 | ParserCallbacks* callbacks, |
| 1914 | 1914 | QPDF* context) |
| 1915 | 1915 | { |
| 1916 | 1916 | size_t stream_length = stream_data->getSize(); |
| 1917 | - auto input = PointerHolder<InputSource>( | |
| 1917 | + auto input = std::shared_ptr<InputSource>( | |
| 1918 | 1918 | new BufferInputSource(description, stream_data.get())); |
| 1919 | 1919 | QPDFTokenizer tokenizer; |
| 1920 | 1920 | tokenizer.allowEOF(); |
| ... | ... | @@ -1969,14 +1969,14 @@ QPDFObjectHandle::parseContentStream_data( |
| 1969 | 1969 | } |
| 1970 | 1970 | |
| 1971 | 1971 | void |
| 1972 | -QPDFObjectHandle::addContentTokenFilter(PointerHolder<TokenFilter> filter) | |
| 1972 | +QPDFObjectHandle::addContentTokenFilter(std::shared_ptr<TokenFilter> filter) | |
| 1973 | 1973 | { |
| 1974 | 1974 | coalesceContentStreams(); |
| 1975 | 1975 | this->getKey("/Contents").addTokenFilter(filter); |
| 1976 | 1976 | } |
| 1977 | 1977 | |
| 1978 | 1978 | void |
| 1979 | -QPDFObjectHandle::addTokenFilter(PointerHolder<TokenFilter> filter) | |
| 1979 | +QPDFObjectHandle::addTokenFilter(std::shared_ptr<TokenFilter> filter) | |
| 1980 | 1980 | { |
| 1981 | 1981 | assertStream(); |
| 1982 | 1982 | return dynamic_cast<QPDF_Stream*>(obj.get())->addTokenFilter(filter); |
| ... | ... | @@ -1984,7 +1984,7 @@ QPDFObjectHandle::addTokenFilter(PointerHolder<TokenFilter> filter) |
| 1984 | 1984 | |
| 1985 | 1985 | QPDFObjectHandle |
| 1986 | 1986 | QPDFObjectHandle::parse( |
| 1987 | - PointerHolder<InputSource> input, | |
| 1987 | + std::shared_ptr<InputSource> input, | |
| 1988 | 1988 | std::string const& object_description, |
| 1989 | 1989 | QPDFTokenizer& tokenizer, |
| 1990 | 1990 | bool& empty, |
| ... | ... | @@ -1997,7 +1997,7 @@ QPDFObjectHandle::parse( |
| 1997 | 1997 | |
| 1998 | 1998 | QPDFObjectHandle |
| 1999 | 1999 | QPDFObjectHandle::parseInternal( |
| 2000 | - PointerHolder<InputSource> input, | |
| 2000 | + std::shared_ptr<InputSource> input, | |
| 2001 | 2001 | std::string const& object_description, |
| 2002 | 2002 | QPDFTokenizer& tokenizer, |
| 2003 | 2003 | bool& empty, |
| ... | ... | @@ -2698,7 +2698,7 @@ QPDFObjectHandle::newStream(QPDF* qpdf) |
| 2698 | 2698 | } |
| 2699 | 2699 | |
| 2700 | 2700 | QPDFObjectHandle |
| 2701 | -QPDFObjectHandle::newStream(QPDF* qpdf, PointerHolder<Buffer> data) | |
| 2701 | +QPDFObjectHandle::newStream(QPDF* qpdf, std::shared_ptr<Buffer> data) | |
| 2702 | 2702 | { |
| 2703 | 2703 | QTC::TC("qpdf", "QPDFObjectHandle newStream with data"); |
| 2704 | 2704 | QPDFObjectHandle result = newStream(qpdf); |
| ... | ... | @@ -2836,26 +2836,27 @@ QPDFObjectHandle::copyObject( |
| 2836 | 2836 | this->objid = 0; |
| 2837 | 2837 | this->generation = 0; |
| 2838 | 2838 | |
| 2839 | - PointerHolder<QPDFObject> new_obj; | |
| 2839 | + std::shared_ptr<QPDFObject> new_obj; | |
| 2840 | 2840 | |
| 2841 | 2841 | if (isBool()) { |
| 2842 | 2842 | QTC::TC("qpdf", "QPDFObjectHandle clone bool"); |
| 2843 | - new_obj = PointerHolder<QPDFObject>(new QPDF_Bool(getBoolValue())); | |
| 2843 | + new_obj = std::shared_ptr<QPDFObject>(new QPDF_Bool(getBoolValue())); | |
| 2844 | 2844 | } else if (isNull()) { |
| 2845 | 2845 | QTC::TC("qpdf", "QPDFObjectHandle clone null"); |
| 2846 | - new_obj = PointerHolder<QPDFObject>(new QPDF_Null()); | |
| 2846 | + new_obj = std::shared_ptr<QPDFObject>(new QPDF_Null()); | |
| 2847 | 2847 | } else if (isInteger()) { |
| 2848 | 2848 | QTC::TC("qpdf", "QPDFObjectHandle clone integer"); |
| 2849 | - new_obj = PointerHolder<QPDFObject>(new QPDF_Integer(getIntValue())); | |
| 2849 | + new_obj = std::shared_ptr<QPDFObject>(new QPDF_Integer(getIntValue())); | |
| 2850 | 2850 | } else if (isReal()) { |
| 2851 | 2851 | QTC::TC("qpdf", "QPDFObjectHandle clone real"); |
| 2852 | - new_obj = PointerHolder<QPDFObject>(new QPDF_Real(getRealValue())); | |
| 2852 | + new_obj = std::shared_ptr<QPDFObject>(new QPDF_Real(getRealValue())); | |
| 2853 | 2853 | } else if (isName()) { |
| 2854 | 2854 | QTC::TC("qpdf", "QPDFObjectHandle clone name"); |
| 2855 | - new_obj = PointerHolder<QPDFObject>(new QPDF_Name(getName())); | |
| 2855 | + new_obj = std::shared_ptr<QPDFObject>(new QPDF_Name(getName())); | |
| 2856 | 2856 | } else if (isString()) { |
| 2857 | 2857 | QTC::TC("qpdf", "QPDFObjectHandle clone string"); |
| 2858 | - new_obj = PointerHolder<QPDFObject>(new QPDF_String(getStringValue())); | |
| 2858 | + new_obj = | |
| 2859 | + std::shared_ptr<QPDFObject>(new QPDF_String(getStringValue())); | |
| 2859 | 2860 | } else if (isArray()) { |
| 2860 | 2861 | QTC::TC("qpdf", "QPDFObjectHandle clone array"); |
| 2861 | 2862 | std::vector<QPDFObjectHandle> items; |
| ... | ... | @@ -2868,7 +2869,7 @@ QPDFObjectHandle::copyObject( |
| 2868 | 2869 | visited, cross_indirect, first_level_only, stop_at_streams); |
| 2869 | 2870 | } |
| 2870 | 2871 | } |
| 2871 | - new_obj = PointerHolder<QPDFObject>(new QPDF_Array(items)); | |
| 2872 | + new_obj = std::shared_ptr<QPDFObject>(new QPDF_Array(items)); | |
| 2872 | 2873 | } else if (isDictionary()) { |
| 2873 | 2874 | QTC::TC("qpdf", "QPDFObjectHandle clone dictionary"); |
| 2874 | 2875 | std::set<std::string> keys = getKeys(); |
| ... | ... | @@ -2883,7 +2884,7 @@ QPDFObjectHandle::copyObject( |
| 2883 | 2884 | visited, cross_indirect, first_level_only, stop_at_streams); |
| 2884 | 2885 | } |
| 2885 | 2886 | } |
| 2886 | - new_obj = PointerHolder<QPDFObject>(new QPDF_Dictionary(items)); | |
| 2887 | + new_obj = std::shared_ptr<QPDFObject>(new QPDF_Dictionary(items)); | |
| 2887 | 2888 | } else { |
| 2888 | 2889 | throw std::logic_error("QPDFObjectHandle::makeDirectInternal: " |
| 2889 | 2890 | "unknown object type"); |
| ... | ... | @@ -3172,12 +3173,12 @@ QPDFObjectHandle::dereference() |
| 3172 | 3173 | this->obj = nullptr; |
| 3173 | 3174 | } |
| 3174 | 3175 | if (this->obj.get() == 0) { |
| 3175 | - PointerHolder<QPDFObject> obj = | |
| 3176 | + std::shared_ptr<QPDFObject> obj = | |
| 3176 | 3177 | QPDF::Resolver::resolve(this->qpdf, this->objid, this->generation); |
| 3177 | 3178 | if (obj.get() == 0) { |
| 3178 | 3179 | // QPDF::resolve never returns an uninitialized object, but |
| 3179 | 3180 | // check just in case. |
| 3180 | - this->obj = PointerHolder<QPDFObject>(new QPDF_Null()); | |
| 3181 | + this->obj = std::shared_ptr<QPDFObject>(new QPDF_Null()); | |
| 3181 | 3182 | } else if (dynamic_cast<QPDF_Reserved*>(obj.get())) { |
| 3182 | 3183 | // Do not resolve |
| 3183 | 3184 | } else { | ... | ... |
libqpdf/QPDFOutlineDocumentHelper.cc
| ... | ... | @@ -100,7 +100,7 @@ QPDFOutlineDocumentHelper::resolveNamedDest(QPDFObjectHandle name) |
| 100 | 100 | QPDFObjectHandle dests = names.getKey("/Dests"); |
| 101 | 101 | if (dests.isDictionary()) { |
| 102 | 102 | this->m->names_dest = |
| 103 | - make_pointer_holder<QPDFNameTreeObjectHelper>( | |
| 103 | + std::make_shared<QPDFNameTreeObjectHelper>( | |
| 104 | 104 | dests, this->qpdf); |
| 105 | 105 | } |
| 106 | 106 | } | ... | ... |
libqpdf/QPDFOutlineObjectHelper.cc
| ... | ... | @@ -31,13 +31,13 @@ QPDFOutlineObjectHelper::QPDFOutlineObjectHelper( |
| 31 | 31 | QPDFObjectHandle cur = oh.getKey("/First"); |
| 32 | 32 | while (!cur.isNull()) { |
| 33 | 33 | QPDFOutlineObjectHelper new_ooh(cur, dh, 1 + depth); |
| 34 | - new_ooh.m->parent = make_pointer_holder<QPDFOutlineObjectHelper>(*this); | |
| 34 | + new_ooh.m->parent = std::make_shared<QPDFOutlineObjectHelper>(*this); | |
| 35 | 35 | this->m->kids.push_back(new_ooh); |
| 36 | 36 | cur = cur.getKey("/Next"); |
| 37 | 37 | } |
| 38 | 38 | } |
| 39 | 39 | |
| 40 | -PointerHolder<QPDFOutlineObjectHelper> | |
| 40 | +std::shared_ptr<QPDFOutlineObjectHelper> | |
| 41 | 41 | QPDFOutlineObjectHelper::getParent() |
| 42 | 42 | { |
| 43 | 43 | return this->m->parent; | ... | ... |
libqpdf/QPDFPageLabelDocumentHelper.cc
| ... | ... | @@ -16,7 +16,7 @@ QPDFPageLabelDocumentHelper::QPDFPageLabelDocumentHelper(QPDF& qpdf) : |
| 16 | 16 | { |
| 17 | 17 | QPDFObjectHandle root = qpdf.getRoot(); |
| 18 | 18 | if (root.hasKey("/PageLabels")) { |
| 19 | - this->m->labels = make_pointer_holder<QPDFNumberTreeObjectHelper>( | |
| 19 | + this->m->labels = std::make_shared<QPDFNumberTreeObjectHelper>( | |
| 20 | 20 | root.getKey("/PageLabels"), this->qpdf); |
| 21 | 21 | } |
| 22 | 22 | } | ... | ... |
libqpdf/QPDFPageObjectHelper.cc
| ... | ... | @@ -556,7 +556,7 @@ QPDFPageObjectHelper::pipeContents(Pipeline* p) |
| 556 | 556 | |
| 557 | 557 | void |
| 558 | 558 | QPDFPageObjectHelper::addContentTokenFilter( |
| 559 | - PointerHolder<QPDFObjectHandle::TokenFilter> token_filter) | |
| 559 | + std::shared_ptr<QPDFObjectHandle::TokenFilter> token_filter) | |
| 560 | 560 | { |
| 561 | 561 | if (this->oh.isFormXObject()) { |
| 562 | 562 | this->oh.addTokenFilter(token_filter); |
| ... | ... | @@ -776,7 +776,7 @@ QPDFPageObjectHelper::getFormXObjectForPage(bool handle_transformations) |
| 776 | 776 | " XObject created from page will not work"); |
| 777 | 777 | } |
| 778 | 778 | newdict.replaceKey("/BBox", bbox); |
| 779 | - auto provider = PointerHolder<QPDFObjectHandle::StreamDataProvider>( | |
| 779 | + auto provider = std::shared_ptr<QPDFObjectHandle::StreamDataProvider>( | |
| 780 | 780 | new ContentProvider(this->oh)); |
| 781 | 781 | result.replaceStreamData( |
| 782 | 782 | provider, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); |
| ... | ... | @@ -1060,9 +1060,9 @@ QPDFPageObjectHelper::flattenRotation(QPDFAcroFormDocumentHelper* afdh) |
| 1060 | 1060 | std::vector<QPDFObjectHandle> new_annots; |
| 1061 | 1061 | std::vector<QPDFObjectHandle> new_fields; |
| 1062 | 1062 | std::set<QPDFObjGen> old_fields; |
| 1063 | - PointerHolder<QPDFAcroFormDocumentHelper> afdhph; | |
| 1063 | + std::shared_ptr<QPDFAcroFormDocumentHelper> afdhph; | |
| 1064 | 1064 | if (!afdh) { |
| 1065 | - afdhph = make_pointer_holder<QPDFAcroFormDocumentHelper>(*qpdf); | |
| 1065 | + afdhph = std::make_shared<QPDFAcroFormDocumentHelper>(*qpdf); | |
| 1066 | 1066 | afdh = afdhph.get(); |
| 1067 | 1067 | } |
| 1068 | 1068 | afdh->transformAnnotations( |
| ... | ... | @@ -1101,10 +1101,10 @@ QPDFPageObjectHelper::copyAnnotations( |
| 1101 | 1101 | std::vector<QPDFObjectHandle> new_annots; |
| 1102 | 1102 | std::vector<QPDFObjectHandle> new_fields; |
| 1103 | 1103 | std::set<QPDFObjGen> old_fields; |
| 1104 | - PointerHolder<QPDFAcroFormDocumentHelper> afdhph; | |
| 1105 | - PointerHolder<QPDFAcroFormDocumentHelper> from_afdhph; | |
| 1104 | + std::shared_ptr<QPDFAcroFormDocumentHelper> afdhph; | |
| 1105 | + std::shared_ptr<QPDFAcroFormDocumentHelper> from_afdhph; | |
| 1106 | 1106 | if (!afdh) { |
| 1107 | - afdhph = make_pointer_holder<QPDFAcroFormDocumentHelper>(*this_qpdf); | |
| 1107 | + afdhph = std::make_shared<QPDFAcroFormDocumentHelper>(*this_qpdf); | |
| 1108 | 1108 | afdh = afdhph.get(); |
| 1109 | 1109 | } |
| 1110 | 1110 | if (this_qpdf == from_qpdf) { |
| ... | ... | @@ -1116,8 +1116,7 @@ QPDFPageObjectHelper::copyAnnotations( |
| 1116 | 1116 | " is not from the same QPDF as from_page"); |
| 1117 | 1117 | } |
| 1118 | 1118 | } else { |
| 1119 | - from_afdhph = | |
| 1120 | - make_pointer_holder<QPDFAcroFormDocumentHelper>(*from_qpdf); | |
| 1119 | + from_afdhph = std::make_shared<QPDFAcroFormDocumentHelper>(*from_qpdf); | |
| 1121 | 1120 | from_afdh = from_afdhph.get(); |
| 1122 | 1121 | } |
| 1123 | 1122 | ... | ... |
libqpdf/QPDFTokenizer.cc
| ... | ... | @@ -23,7 +23,8 @@ is_delimiter(char ch) |
| 23 | 23 | class QPDFWordTokenFinder: public InputSource::Finder |
| 24 | 24 | { |
| 25 | 25 | public: |
| 26 | - QPDFWordTokenFinder(PointerHolder<InputSource> is, std::string const& str) : | |
| 26 | + QPDFWordTokenFinder( | |
| 27 | + std::shared_ptr<InputSource> is, std::string const& str) : | |
| 27 | 28 | is(is), |
| 28 | 29 | str(str) |
| 29 | 30 | { |
| ... | ... | @@ -34,7 +35,7 @@ class QPDFWordTokenFinder: public InputSource::Finder |
| 34 | 35 | virtual bool check(); |
| 35 | 36 | |
| 36 | 37 | private: |
| 37 | - PointerHolder<InputSource> is; | |
| 38 | + std::shared_ptr<InputSource> is; | |
| 38 | 39 | std::string str; |
| 39 | 40 | }; |
| 40 | 41 | |
| ... | ... | @@ -503,7 +504,7 @@ QPDFTokenizer::presentEOF() |
| 503 | 504 | } |
| 504 | 505 | |
| 505 | 506 | void |
| 506 | -QPDFTokenizer::expectInlineImage(PointerHolder<InputSource> input) | |
| 507 | +QPDFTokenizer::expectInlineImage(std::shared_ptr<InputSource> input) | |
| 507 | 508 | { |
| 508 | 509 | if (this->m->state != st_top) { |
| 509 | 510 | throw std::logic_error("QPDFTokenizer::expectInlineImage called" |
| ... | ... | @@ -514,7 +515,7 @@ QPDFTokenizer::expectInlineImage(PointerHolder<InputSource> input) |
| 514 | 515 | } |
| 515 | 516 | |
| 516 | 517 | void |
| 517 | -QPDFTokenizer::findEI(PointerHolder<InputSource> input) | |
| 518 | +QPDFTokenizer::findEI(std::shared_ptr<InputSource> input) | |
| 518 | 519 | { |
| 519 | 520 | if (!input.get()) { |
| 520 | 521 | return; |
| ... | ... | @@ -645,7 +646,7 @@ QPDFTokenizer::betweenTokens() |
| 645 | 646 | |
| 646 | 647 | QPDFTokenizer::Token |
| 647 | 648 | QPDFTokenizer::readToken( |
| 648 | - PointerHolder<InputSource> input, | |
| 649 | + std::shared_ptr<InputSource> input, | |
| 649 | 650 | std::string const& context, |
| 650 | 651 | bool allow_bad, |
| 651 | 652 | size_t max_len) | ... | ... |
libqpdf/QPDFWriter.cc
| ... | ... | @@ -153,10 +153,10 @@ QPDFWriter::getBuffer() |
| 153 | 153 | return result; |
| 154 | 154 | } |
| 155 | 155 | |
| 156 | -PointerHolder<Buffer> | |
| 156 | +std::shared_ptr<Buffer> | |
| 157 | 157 | QPDFWriter::getBufferSharedPointer() |
| 158 | 158 | { |
| 159 | - return PointerHolder<Buffer>(getBuffer()); | |
| 159 | + return std::shared_ptr<Buffer>(getBuffer()); | |
| 160 | 160 | } |
| 161 | 161 | |
| 162 | 162 | void |
| ... | ... | @@ -1081,7 +1081,7 @@ QPDFWriter::writeString(std::string const& str) |
| 1081 | 1081 | } |
| 1082 | 1082 | |
| 1083 | 1083 | void |
| 1084 | -QPDFWriter::writeBuffer(PointerHolder<Buffer>& b) | |
| 1084 | +QPDFWriter::writeBuffer(std::shared_ptr<Buffer>& b) | |
| 1085 | 1085 | { |
| 1086 | 1086 | this->m->pipeline->write(b->getBuffer(), b->getSize()); |
| 1087 | 1087 | } |
| ... | ... | @@ -1485,7 +1485,7 @@ QPDFWriter::willFilterStream( |
| 1485 | 1485 | QPDFObjectHandle stream, |
| 1486 | 1486 | bool& compress_stream, |
| 1487 | 1487 | bool& is_metadata, |
| 1488 | - PointerHolder<Buffer>* stream_data) | |
| 1488 | + std::shared_ptr<Buffer>* stream_data) | |
| 1489 | 1489 | { |
| 1490 | 1490 | compress_stream = false; |
| 1491 | 1491 | is_metadata = false; |
| ... | ... | @@ -1819,7 +1819,7 @@ QPDFWriter::unparseObject( |
| 1819 | 1819 | flags |= f_stream; |
| 1820 | 1820 | bool compress_stream = false; |
| 1821 | 1821 | bool is_metadata = false; |
| 1822 | - PointerHolder<Buffer> stream_data; | |
| 1822 | + std::shared_ptr<Buffer> stream_data; | |
| 1823 | 1823 | if (willFilterStream( |
| 1824 | 1824 | object, compress_stream, is_metadata, &stream_data)) { |
| 1825 | 1825 | flags |= f_filtered; |
| ... | ... | @@ -1924,7 +1924,7 @@ QPDFWriter::writeObjectStream(QPDFObjectHandle object) |
| 1924 | 1924 | |
| 1925 | 1925 | // Generate stream itself. We have to do this in two passes so we |
| 1926 | 1926 | // can calculate offsets in the first pass. |
| 1927 | - PointerHolder<Buffer> stream_buffer; | |
| 1927 | + std::shared_ptr<Buffer> stream_buffer; | |
| 1928 | 1928 | int first_obj = -1; |
| 1929 | 1929 | bool compressed = false; |
| 1930 | 1930 | for (int pass = 1; pass <= 2; ++pass) { |
| ... | ... | @@ -2667,7 +2667,7 @@ QPDFWriter::writeHeader() |
| 2667 | 2667 | void |
| 2668 | 2668 | QPDFWriter::writeHintStream(int hint_id) |
| 2669 | 2669 | { |
| 2670 | - PointerHolder<Buffer> hint_buffer; | |
| 2670 | + std::shared_ptr<Buffer> hint_buffer; | |
| 2671 | 2671 | int S = 0; |
| 2672 | 2672 | int O = 0; |
| 2673 | 2673 | QPDF::Writer::generateHintStream( |
| ... | ... | @@ -2839,7 +2839,7 @@ QPDFWriter::writeXRefStream( |
| 2839 | 2839 | p = pushPipeline( |
| 2840 | 2840 | new Pl_PNGFilter("pngify xref", p, Pl_PNGFilter::a_encode, esize)); |
| 2841 | 2841 | } |
| 2842 | - PointerHolder<Buffer> xref_data; | |
| 2842 | + std::shared_ptr<Buffer> xref_data; | |
| 2843 | 2843 | { |
| 2844 | 2844 | PipelinePopper pp_xref(this, &xref_data); |
| 2845 | 2845 | activatePipelineStack(pp_xref); |
| ... | ... | @@ -3098,13 +3098,13 @@ QPDFWriter::writeLinearized() |
| 3098 | 3098 | } |
| 3099 | 3099 | |
| 3100 | 3100 | qpdf_offset_t hint_length = 0; |
| 3101 | - PointerHolder<Buffer> hint_buffer; | |
| 3101 | + std::shared_ptr<Buffer> hint_buffer; | |
| 3102 | 3102 | |
| 3103 | 3103 | // Write file in two passes. Part numbers refer to PDF spec 1.4. |
| 3104 | 3104 | |
| 3105 | 3105 | FILE* lin_pass1_file = 0; |
| 3106 | - auto pp_pass1 = make_pointer_holder<PipelinePopper>(this); | |
| 3107 | - auto pp_md5 = make_pointer_holder<PipelinePopper>(this); | |
| 3106 | + auto pp_pass1 = std::make_shared<PipelinePopper>(this); | |
| 3107 | + auto pp_md5 = std::make_shared<PipelinePopper>(this); | |
| 3108 | 3108 | for (int pass = 1; pass <= 2; ++pass) { |
| 3109 | 3109 | if (pass == 1) { |
| 3110 | 3110 | if (!this->m->lin_pass1_filename.empty()) { |
| ... | ... | @@ -3489,7 +3489,7 @@ QPDFWriter::indicateProgress(bool decrement, bool finished) |
| 3489 | 3489 | } |
| 3490 | 3490 | |
| 3491 | 3491 | void |
| 3492 | -QPDFWriter::registerProgressReporter(PointerHolder<ProgressReporter> pr) | |
| 3492 | +QPDFWriter::registerProgressReporter(std::shared_ptr<ProgressReporter> pr) | |
| 3493 | 3493 | { |
| 3494 | 3494 | this->m->progress_reporter = pr; |
| 3495 | 3495 | } |
| ... | ... | @@ -3497,7 +3497,7 @@ QPDFWriter::registerProgressReporter(PointerHolder<ProgressReporter> pr) |
| 3497 | 3497 | void |
| 3498 | 3498 | QPDFWriter::writeStandard() |
| 3499 | 3499 | { |
| 3500 | - auto pp_md5 = make_pointer_holder<PipelinePopper>(this); | |
| 3500 | + auto pp_md5 = std::make_shared<PipelinePopper>(this); | |
| 3501 | 3501 | if (this->m->deterministic_id) { |
| 3502 | 3502 | pushMD5Pipeline(*pp_md5); |
| 3503 | 3503 | } | ... | ... |
libqpdf/QPDF_Stream.cc
| ... | ... | @@ -221,19 +221,19 @@ QPDF_Stream::getLength() const |
| 221 | 221 | return this->length; |
| 222 | 222 | } |
| 223 | 223 | |
| 224 | -PointerHolder<Buffer> | |
| 224 | +std::shared_ptr<Buffer> | |
| 225 | 225 | QPDF_Stream::getStreamDataBuffer() const |
| 226 | 226 | { |
| 227 | 227 | return this->stream_data; |
| 228 | 228 | } |
| 229 | 229 | |
| 230 | -PointerHolder<QPDFObjectHandle::StreamDataProvider> | |
| 230 | +std::shared_ptr<QPDFObjectHandle::StreamDataProvider> | |
| 231 | 231 | QPDF_Stream::getStreamDataProvider() const |
| 232 | 232 | { |
| 233 | 233 | return this->stream_provider; |
| 234 | 234 | } |
| 235 | 235 | |
| 236 | -PointerHolder<Buffer> | |
| 236 | +std::shared_ptr<Buffer> | |
| 237 | 237 | QPDF_Stream::getStreamData(qpdf_stream_decode_level_e decode_level) |
| 238 | 238 | { |
| 239 | 239 | Pl_Buffer buf("stream data buffer"); |
| ... | ... | @@ -251,7 +251,7 @@ QPDF_Stream::getStreamData(qpdf_stream_decode_level_e decode_level) |
| 251 | 251 | return buf.getBufferSharedPointer(); |
| 252 | 252 | } |
| 253 | 253 | |
| 254 | -PointerHolder<Buffer> | |
| 254 | +std::shared_ptr<Buffer> | |
| 255 | 255 | QPDF_Stream::getRawStreamData() |
| 256 | 256 | { |
| 257 | 257 | Pl_Buffer buf("stream data buffer"); |
| ... | ... | @@ -438,7 +438,7 @@ QPDF_Stream::pipeStreamData( |
| 438 | 438 | // objects. |
| 439 | 439 | std::vector<std::shared_ptr<Pipeline>> to_delete; |
| 440 | 440 | |
| 441 | - PointerHolder<ContentNormalizer> normalizer; | |
| 441 | + std::shared_ptr<ContentNormalizer> normalizer; | |
| 442 | 442 | std::shared_ptr<Pipeline> new_pipeline; |
| 443 | 443 | if (filter) { |
| 444 | 444 | if (encode_flags & qpdf_ef_compress) { |
| ... | ... | @@ -449,7 +449,7 @@ QPDF_Stream::pipeStreamData( |
| 449 | 449 | } |
| 450 | 450 | |
| 451 | 451 | if (encode_flags & qpdf_ef_normalize) { |
| 452 | - normalizer = make_pointer_holder<ContentNormalizer>(); | |
| 452 | + normalizer = std::make_shared<ContentNormalizer>(); | |
| 453 | 453 | new_pipeline = std::make_shared<Pl_QPDFTokenizer>( |
| 454 | 454 | "normalizer", normalizer.get(), pipeline); |
| 455 | 455 | to_delete.push_back(new_pipeline); |
| ... | ... | @@ -586,7 +586,7 @@ QPDF_Stream::pipeStreamData( |
| 586 | 586 | |
| 587 | 587 | void |
| 588 | 588 | QPDF_Stream::replaceStreamData( |
| 589 | - PointerHolder<Buffer> data, | |
| 589 | + std::shared_ptr<Buffer> data, | |
| 590 | 590 | QPDFObjectHandle const& filter, |
| 591 | 591 | QPDFObjectHandle const& decode_parms) |
| 592 | 592 | { |
| ... | ... | @@ -597,7 +597,7 @@ QPDF_Stream::replaceStreamData( |
| 597 | 597 | |
| 598 | 598 | void |
| 599 | 599 | QPDF_Stream::replaceStreamData( |
| 600 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> provider, | |
| 600 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> provider, | |
| 601 | 601 | QPDFObjectHandle const& filter, |
| 602 | 602 | QPDFObjectHandle const& decode_parms) |
| 603 | 603 | { |
| ... | ... | @@ -608,7 +608,7 @@ QPDF_Stream::replaceStreamData( |
| 608 | 608 | |
| 609 | 609 | void |
| 610 | 610 | QPDF_Stream::addTokenFilter( |
| 611 | - PointerHolder<QPDFObjectHandle::TokenFilter> token_filter) | |
| 611 | + std::shared_ptr<QPDFObjectHandle::TokenFilter> token_filter) | |
| 612 | 612 | { |
| 613 | 613 | this->token_filters.push_back(token_filter); |
| 614 | 614 | } | ... | ... |
libqpdf/QPDF_encryption.cc
| ... | ... | @@ -754,7 +754,8 @@ QPDF::recover_encryption_key_with_password( |
| 754 | 754 | } |
| 755 | 755 | |
| 756 | 756 | QPDF::encryption_method_e |
| 757 | -QPDF::interpretCF(PointerHolder<EncryptionParameters> encp, QPDFObjectHandle cf) | |
| 757 | +QPDF::interpretCF( | |
| 758 | + std::shared_ptr<EncryptionParameters> encp, QPDFObjectHandle cf) | |
| 758 | 759 | { |
| 759 | 760 | if (cf.isName()) { |
| 760 | 761 | std::string filter = cf.getName(); |
| ... | ... | @@ -1079,7 +1080,7 @@ QPDF::initializeEncryption() |
| 1079 | 1080 | |
| 1080 | 1081 | std::string |
| 1081 | 1082 | QPDF::getKeyForObject( |
| 1082 | - PointerHolder<EncryptionParameters> encp, | |
| 1083 | + std::shared_ptr<EncryptionParameters> encp, | |
| 1083 | 1084 | int objid, |
| 1084 | 1085 | int generation, |
| 1085 | 1086 | bool use_aes) |
| ... | ... | @@ -1165,7 +1166,7 @@ QPDF::decryptString(std::string& str, int objid, int generation) |
| 1165 | 1166 | } else { |
| 1166 | 1167 | QTC::TC("qpdf", "QPDF_encryption rc4 decode string"); |
| 1167 | 1168 | size_t vlen = str.length(); |
| 1168 | - // Using PointerHolder guarantees that tmp will | |
| 1169 | + // Using std::shared_ptr guarantees that tmp will | |
| 1169 | 1170 | // be freed even if rc4.process throws an exception. |
| 1170 | 1171 | auto tmp = QUtil::make_unique_cstr(str); |
| 1171 | 1172 | RC4 rc4(QUtil::unsigned_char_pointer(key), toI(key.length())); |
| ... | ... | @@ -1188,8 +1189,8 @@ QPDF::decryptString(std::string& str, int objid, int generation) |
| 1188 | 1189 | |
| 1189 | 1190 | void |
| 1190 | 1191 | QPDF::decryptStream( |
| 1191 | - PointerHolder<EncryptionParameters> encp, | |
| 1192 | - PointerHolder<InputSource> file, | |
| 1192 | + std::shared_ptr<EncryptionParameters> encp, | |
| 1193 | + std::shared_ptr<InputSource> file, | |
| 1193 | 1194 | QPDF& qpdf_for_warning, |
| 1194 | 1195 | Pipeline*& pipeline, |
| 1195 | 1196 | int objid, | ... | ... |
libqpdf/QPDF_linearization.cc
| ... | ... | @@ -2120,7 +2120,7 @@ QPDF::generateHintStream( |
| 2120 | 2120 | std::map<int, QPDFXRefEntry> const& xref, |
| 2121 | 2121 | std::map<int, qpdf_offset_t> const& lengths, |
| 2122 | 2122 | std::map<int, int> const& obj_renumber, |
| 2123 | - PointerHolder<Buffer>& hint_buffer, | |
| 2123 | + std::shared_ptr<Buffer>& hint_buffer, | |
| 2124 | 2124 | int& S, |
| 2125 | 2125 | int& O) |
| 2126 | 2126 | { | ... | ... |
libqpdf/QUtil.cc
| ... | ... | @@ -445,7 +445,7 @@ QUtil::os_wrapper(std::string const& description, int status) |
| 445 | 445 | } |
| 446 | 446 | |
| 447 | 447 | #ifdef _WIN32 |
| 448 | -static PointerHolder<wchar_t> | |
| 448 | +static std::shared_ptr<wchar_t> | |
| 449 | 449 | win_convert_filename(char const* filename) |
| 450 | 450 | { |
| 451 | 451 | // Convert the utf-8 encoded filename argument to wchar_t*. First, |
| ... | ... | @@ -454,7 +454,7 @@ win_convert_filename(char const* filename) |
| 454 | 454 | std::string u16 = QUtil::utf8_to_utf16(filename); |
| 455 | 455 | size_t len = u16.length(); |
| 456 | 456 | size_t wlen = (len / 2) - 1; |
| 457 | - PointerHolder<wchar_t> wfilenamep(true, new wchar_t[wlen + 1]); | |
| 457 | + auto wfilenamep = QUtil::make_shared_array<wchar_t>(wlen + 1); | |
| 458 | 458 | wchar_t* wfilename = wfilenamep.get(); |
| 459 | 459 | wfilename[wlen] = 0; |
| 460 | 460 | for (unsigned int i = 2; i < len; i += 2) { |
| ... | ... | @@ -471,9 +471,9 @@ QUtil::safe_fopen(char const* filename, char const* mode) |
| 471 | 471 | { |
| 472 | 472 | FILE* f = 0; |
| 473 | 473 | #ifdef _WIN32 |
| 474 | - PointerHolder<wchar_t> wfilenamep = win_convert_filename(filename); | |
| 474 | + std::shared_ptr<wchar_t> wfilenamep = win_convert_filename(filename); | |
| 475 | 475 | wchar_t* wfilename = wfilenamep.get(); |
| 476 | - PointerHolder<wchar_t> wmodep(true, new wchar_t[strlen(mode) + 1]); | |
| 476 | + auto wmodep = QUtil::make_shared_array<wchar_t>(strlen(mode) + 1); | |
| 477 | 477 | wchar_t* wmode = wmodep.get(); |
| 478 | 478 | wmode[strlen(mode)] = 0; |
| 479 | 479 | for (size_t i = 0; i < strlen(mode); ++i) { |
| ... | ... | @@ -612,7 +612,7 @@ void |
| 612 | 612 | QUtil::remove_file(char const* path) |
| 613 | 613 | { |
| 614 | 614 | #ifdef _WIN32 |
| 615 | - PointerHolder<wchar_t> wpath = win_convert_filename(path); | |
| 615 | + std::shared_ptr<wchar_t> wpath = win_convert_filename(path); | |
| 616 | 616 | os_wrapper(std::string("remove ") + path, _wunlink(wpath.get())); |
| 617 | 617 | #else |
| 618 | 618 | os_wrapper(std::string("remove ") + path, unlink(path)); |
| ... | ... | @@ -628,8 +628,8 @@ QUtil::rename_file(char const* oldname, char const* newname) |
| 628 | 628 | } catch (QPDFSystemError&) { |
| 629 | 629 | // ignore |
| 630 | 630 | } |
| 631 | - PointerHolder<wchar_t> wold = win_convert_filename(oldname); | |
| 632 | - PointerHolder<wchar_t> wnew = win_convert_filename(newname); | |
| 631 | + std::shared_ptr<wchar_t> wold = win_convert_filename(oldname); | |
| 632 | + std::shared_ptr<wchar_t> wnew = win_convert_filename(newname); | |
| 633 | 633 | os_wrapper( |
| 634 | 634 | std::string("rename ") + oldname + " " + newname, |
| 635 | 635 | _wrename(wold.get(), wnew.get())); |
| ... | ... | @@ -824,7 +824,7 @@ QUtil::get_env(std::string const& var, std::string* value) |
| 824 | 824 | } |
| 825 | 825 | |
| 826 | 826 | if (value) { |
| 827 | - PointerHolder<char> t = PointerHolder<char>(true, new char[len + 1]); | |
| 827 | + auto t = QUtil::make_shared_array<char>(len + 1); | |
| 828 | 828 | ::GetEnvironmentVariable(var.c_str(), t.get(), len); |
| 829 | 829 | *value = t.get(); |
| 830 | 830 | } |
| ... | ... | @@ -1173,14 +1173,14 @@ QUtil::is_number(char const* p) |
| 1173 | 1173 | |
| 1174 | 1174 | void |
| 1175 | 1175 | QUtil::read_file_into_memory( |
| 1176 | - char const* filename, PointerHolder<char>& file_buf, size_t& size) | |
| 1176 | + char const* filename, std::shared_ptr<char>& file_buf, size_t& size) | |
| 1177 | 1177 | { |
| 1178 | 1178 | FILE* f = safe_fopen(filename, "rb"); |
| 1179 | 1179 | FileCloser fc(f); |
| 1180 | 1180 | fseek(f, 0, SEEK_END); |
| 1181 | 1181 | size = QIntC::to_size(QUtil::tell(f)); |
| 1182 | 1182 | fseek(f, 0, SEEK_SET); |
| 1183 | - file_buf = make_array_pointer_holder<char>(size); | |
| 1183 | + file_buf = QUtil::make_shared_array<char>(size); | |
| 1184 | 1184 | char* buf_p = file_buf.get(); |
| 1185 | 1185 | size_t bytes_read = 0; |
| 1186 | 1186 | size_t len = 0; | ... | ... |
libqpdf/qpdf-c.cc
| ... | ... | @@ -18,7 +18,7 @@ |
| 18 | 18 | |
| 19 | 19 | struct _qpdf_error |
| 20 | 20 | { |
| 21 | - PointerHolder<QPDFExc> exc; | |
| 21 | + std::shared_ptr<QPDFExc> exc; | |
| 22 | 22 | }; |
| 23 | 23 | |
| 24 | 24 | struct _qpdf_data |
| ... | ... | @@ -26,10 +26,10 @@ struct _qpdf_data |
| 26 | 26 | _qpdf_data(); |
| 27 | 27 | ~_qpdf_data(); |
| 28 | 28 | |
| 29 | - PointerHolder<QPDF> qpdf; | |
| 30 | - PointerHolder<QPDFWriter> qpdf_writer; | |
| 29 | + std::shared_ptr<QPDF> qpdf; | |
| 30 | + std::shared_ptr<QPDFWriter> qpdf_writer; | |
| 31 | 31 | |
| 32 | - PointerHolder<QPDFExc> error; | |
| 32 | + std::shared_ptr<QPDFExc> error; | |
| 33 | 33 | _qpdf_error tmp_error; |
| 34 | 34 | std::list<QPDFExc> warnings; |
| 35 | 35 | std::string tmp_string; |
| ... | ... | @@ -40,12 +40,12 @@ struct _qpdf_data |
| 40 | 40 | unsigned long long size; |
| 41 | 41 | char const* password; |
| 42 | 42 | bool write_memory; |
| 43 | - PointerHolder<Buffer> output_buffer; | |
| 43 | + std::shared_ptr<Buffer> output_buffer; | |
| 44 | 44 | |
| 45 | 45 | // QPDFObjectHandle support |
| 46 | 46 | bool silence_errors; |
| 47 | 47 | bool oh_error_occurred; |
| 48 | - std::map<qpdf_oh, PointerHolder<QPDFObjectHandle>> oh_cache; | |
| 48 | + std::map<qpdf_oh, std::shared_ptr<QPDFObjectHandle>> oh_cache; | |
| 49 | 49 | qpdf_oh next_oh; |
| 50 | 50 | std::set<std::string> cur_iter_dict_keys; |
| 51 | 51 | std::set<std::string>::const_iterator dict_iter; |
| ... | ... | @@ -111,13 +111,13 @@ static void |
| 111 | 111 | call_init_write(qpdf_data qpdf) |
| 112 | 112 | { |
| 113 | 113 | qpdf->qpdf_writer = |
| 114 | - make_pointer_holder<QPDFWriter>(*(qpdf->qpdf), qpdf->filename); | |
| 114 | + std::make_shared<QPDFWriter>(*(qpdf->qpdf), qpdf->filename); | |
| 115 | 115 | } |
| 116 | 116 | |
| 117 | 117 | static void |
| 118 | 118 | call_init_write_memory(qpdf_data qpdf) |
| 119 | 119 | { |
| 120 | - qpdf->qpdf_writer = make_pointer_holder<QPDFWriter>(*(qpdf->qpdf)); | |
| 120 | + qpdf->qpdf_writer = std::make_shared<QPDFWriter>(*(qpdf->qpdf)); | |
| 121 | 121 | qpdf->qpdf_writer->setOutputMemory(); |
| 122 | 122 | } |
| 123 | 123 | |
| ... | ... | @@ -144,15 +144,15 @@ trap_errors(qpdf_data qpdf, std::function<void(qpdf_data)> fn) |
| 144 | 144 | try { |
| 145 | 145 | fn(qpdf); |
| 146 | 146 | } catch (QPDFExc& e) { |
| 147 | - qpdf->error = make_pointer_holder<QPDFExc>(e); | |
| 147 | + qpdf->error = std::make_shared<QPDFExc>(e); | |
| 148 | 148 | status |= QPDF_ERRORS; |
| 149 | 149 | } catch (std::runtime_error& e) { |
| 150 | 150 | qpdf->error = |
| 151 | - make_pointer_holder<QPDFExc>(qpdf_e_system, "", "", 0, e.what()); | |
| 151 | + std::make_shared<QPDFExc>(qpdf_e_system, "", "", 0, e.what()); | |
| 152 | 152 | status |= QPDF_ERRORS; |
| 153 | 153 | } catch (std::exception& e) { |
| 154 | 154 | qpdf->error = |
| 155 | - make_pointer_holder<QPDFExc>(qpdf_e_internal, "", "", 0, e.what()); | |
| 155 | + std::make_shared<QPDFExc>(qpdf_e_internal, "", "", 0, e.what()); | |
| 156 | 156 | status |= QPDF_ERRORS; |
| 157 | 157 | } |
| 158 | 158 | |
| ... | ... | @@ -175,7 +175,7 @@ qpdf_init() |
| 175 | 175 | { |
| 176 | 176 | QTC::TC("qpdf", "qpdf-c called qpdf_init"); |
| 177 | 177 | qpdf_data qpdf = new _qpdf_data(); |
| 178 | - qpdf->qpdf = make_pointer_holder<QPDF>(); | |
| 178 | + qpdf->qpdf = std::make_shared<QPDF>(); | |
| 179 | 179 | return qpdf; |
| 180 | 180 | } |
| 181 | 181 | |
| ... | ... | @@ -241,8 +241,7 @@ qpdf_error |
| 241 | 241 | qpdf_next_warning(qpdf_data qpdf) |
| 242 | 242 | { |
| 243 | 243 | if (qpdf_more_warnings(qpdf)) { |
| 244 | - qpdf->tmp_error.exc = | |
| 245 | - make_pointer_holder<QPDFExc>(qpdf->warnings.front()); | |
| 244 | + qpdf->tmp_error.exc = std::make_shared<QPDFExc>(qpdf->warnings.front()); | |
| 246 | 245 | qpdf->warnings.pop_front(); |
| 247 | 246 | QTC::TC("qpdf", "qpdf-c qpdf_next_warning returned warning"); |
| 248 | 247 | return &qpdf->tmp_error; |
| ... | ... | @@ -974,7 +973,7 @@ qpdf_register_progress_reporter( |
| 974 | 973 | { |
| 975 | 974 | QTC::TC("qpdf", "qpdf-c registered progress reporter"); |
| 976 | 975 | qpdf->qpdf_writer->registerProgressReporter( |
| 977 | - PointerHolder<QPDFWriter::ProgressReporter>( | |
| 976 | + std::shared_ptr<QPDFWriter::ProgressReporter>( | |
| 978 | 977 | new ProgressReporter(report_progress, data))); |
| 979 | 978 | } |
| 980 | 979 | |
| ... | ... | @@ -1035,7 +1034,7 @@ static qpdf_oh |
| 1035 | 1034 | new_object(qpdf_data qpdf, QPDFObjectHandle const& qoh) |
| 1036 | 1035 | { |
| 1037 | 1036 | qpdf_oh oh = ++qpdf->next_oh; // never return 0 |
| 1038 | - qpdf->oh_cache[oh] = make_pointer_holder<QPDFObjectHandle>(qoh); | |
| 1037 | + qpdf->oh_cache[oh] = std::make_shared<QPDFObjectHandle>(qoh); | |
| 1039 | 1038 | return oh; |
| 1040 | 1039 | } |
| 1041 | 1040 | ... | ... |
libqpdf/qpdf/JSONHandler.hh
libqpdf/qpdf/OffsetInputSource.hh
| ... | ... | @@ -10,7 +10,8 @@ |
| 10 | 10 | class OffsetInputSource: public InputSource |
| 11 | 11 | { |
| 12 | 12 | public: |
| 13 | - OffsetInputSource(PointerHolder<InputSource>, qpdf_offset_t global_offset); | |
| 13 | + OffsetInputSource( | |
| 14 | + std::shared_ptr<InputSource>, qpdf_offset_t global_offset); | |
| 14 | 15 | virtual ~OffsetInputSource(); |
| 15 | 16 | |
| 16 | 17 | virtual qpdf_offset_t findAndSkipNextEOL(); |
| ... | ... | @@ -22,7 +23,7 @@ class OffsetInputSource: public InputSource |
| 22 | 23 | virtual void unreadCh(char ch); |
| 23 | 24 | |
| 24 | 25 | private: |
| 25 | - PointerHolder<InputSource> proxied; | |
| 26 | + std::shared_ptr<InputSource> proxied; | |
| 26 | 27 | qpdf_offset_t global_offset; |
| 27 | 28 | qpdf_offset_t max_safe_offset; |
| 28 | 29 | }; | ... | ... |
libqpdf/qpdf/Pl_PNGFilter.hh
| ... | ... | @@ -46,8 +46,8 @@ class Pl_PNGFilter: public Pipeline |
| 46 | 46 | unsigned int bytes_per_pixel; |
| 47 | 47 | unsigned char* cur_row; // points to buf1 or buf2 |
| 48 | 48 | unsigned char* prev_row; // points to buf1 or buf2 |
| 49 | - PointerHolder<unsigned char> buf1; | |
| 50 | - PointerHolder<unsigned char> buf2; | |
| 49 | + std::shared_ptr<unsigned char> buf1; | |
| 50 | + std::shared_ptr<unsigned char> buf2; | |
| 51 | 51 | size_t pos; |
| 52 | 52 | size_t incoming; |
| 53 | 53 | }; | ... | ... |
libqpdf/qpdf/Pl_RC4.hh
libqpdf/qpdf/Pl_TIFFPredictor.hh
| ... | ... | @@ -35,7 +35,7 @@ class Pl_TIFFPredictor: public Pipeline |
| 35 | 35 | unsigned int bytes_per_row; |
| 36 | 36 | unsigned int samples_per_pixel; |
| 37 | 37 | unsigned int bits_per_sample; |
| 38 | - PointerHolder<unsigned char> cur_row; | |
| 38 | + std::shared_ptr<unsigned char> cur_row; | |
| 39 | 39 | size_t pos; |
| 40 | 40 | }; |
| 41 | 41 | ... | ... |
libqpdf/qpdf/QPDF_Stream.hh
| ... | ... | @@ -37,8 +37,8 @@ class QPDF_Stream: public QPDFObject |
| 37 | 37 | // Methods to help QPDF copy foreign streams |
| 38 | 38 | qpdf_offset_t getOffset() const; |
| 39 | 39 | size_t getLength() const; |
| 40 | - PointerHolder<Buffer> getStreamDataBuffer() const; | |
| 41 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> | |
| 40 | + std::shared_ptr<Buffer> getStreamDataBuffer() const; | |
| 41 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> | |
| 42 | 42 | getStreamDataProvider() const; |
| 43 | 43 | |
| 44 | 44 | // See comments in QPDFObjectHandle.hh for these methods. |
| ... | ... | @@ -49,18 +49,18 @@ class QPDF_Stream: public QPDFObject |
| 49 | 49 | qpdf_stream_decode_level_e decode_level, |
| 50 | 50 | bool suppress_warnings, |
| 51 | 51 | bool will_retry); |
| 52 | - PointerHolder<Buffer> getStreamData(qpdf_stream_decode_level_e); | |
| 53 | - PointerHolder<Buffer> getRawStreamData(); | |
| 52 | + std::shared_ptr<Buffer> getStreamData(qpdf_stream_decode_level_e); | |
| 53 | + std::shared_ptr<Buffer> getRawStreamData(); | |
| 54 | 54 | void replaceStreamData( |
| 55 | - PointerHolder<Buffer> data, | |
| 55 | + std::shared_ptr<Buffer> data, | |
| 56 | 56 | QPDFObjectHandle const& filter, |
| 57 | 57 | QPDFObjectHandle const& decode_parms); |
| 58 | 58 | void replaceStreamData( |
| 59 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> provider, | |
| 59 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> provider, | |
| 60 | 60 | QPDFObjectHandle const& filter, |
| 61 | 61 | QPDFObjectHandle const& decode_parms); |
| 62 | 62 | void |
| 63 | - addTokenFilter(PointerHolder<QPDFObjectHandle::TokenFilter> token_filter); | |
| 63 | + addTokenFilter(std::shared_ptr<QPDFObjectHandle::TokenFilter> token_filter); | |
| 64 | 64 | |
| 65 | 65 | void replaceDict(QPDFObjectHandle new_dict); |
| 66 | 66 | |
| ... | ... | @@ -101,9 +101,9 @@ class QPDF_Stream: public QPDFObject |
| 101 | 101 | QPDFObjectHandle stream_dict; |
| 102 | 102 | qpdf_offset_t offset; |
| 103 | 103 | size_t length; |
| 104 | - PointerHolder<Buffer> stream_data; | |
| 105 | - PointerHolder<QPDFObjectHandle::StreamDataProvider> stream_provider; | |
| 106 | - std::vector<PointerHolder<QPDFObjectHandle::TokenFilter>> token_filters; | |
| 104 | + std::shared_ptr<Buffer> stream_data; | |
| 105 | + std::shared_ptr<QPDFObjectHandle::StreamDataProvider> stream_provider; | |
| 106 | + std::vector<std::shared_ptr<QPDFObjectHandle::TokenFilter>> token_filters; | |
| 107 | 107 | }; |
| 108 | 108 | |
| 109 | 109 | #endif // QPDF_STREAM_HH | ... | ... |