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