diff --git a/README-maintainer b/README-maintainer index 52c10810..f4c54324 100644 --- a/README-maintainer +++ b/README-maintainer @@ -165,6 +165,18 @@ CODING RULES or QPDFDocumentHelper subclasses since there's no reason to use dynamic_cast with those. + IMPORTANT NOTE ABOUT QPDF_DLL_CLASS: On mingw, the vtable for a + class with some virtual methods and no pure virtual methods seems + often (always?) not to be generated if the destructor is inline or + declared with `= default`. Therefore, for any class that is intended + to be used as a base class and doesn't contain any pure virtual + methods, you must declare the destructor in the header without + `= default` and provide a non-inline implementation in the source + file. Add this comment to the implementation: + + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer + * Put private member variables in std::shared_ptr for all public classes. Remember to use QPDF_DLL on ~Members(). Exception: indirection through std::shared_ptr is expensive, so don't diff --git a/TODO b/TODO index 7609b02e..0309603a 100644 --- a/TODO +++ b/TODO @@ -483,14 +483,10 @@ Comments appear in the code prefixed by "ABI" * Switch default --json to latest * See where anonymous namespaces can be used to keep things private to a source file. Search for `(class|struct)` in **/*.cc. -* See if we can use constructor delegation instead of init() in - classes with overloaded constructors. * After removing legacy QPDFNameTreeObjectHelper and QPDFNumberTreeObjectHelper constructors, NNTreeImpl can switch to having a QPDF reference and assume that the reference is always valid. -* Use `= delete` and `= default` for constructors and destructors - where possible * Having QPDFObjectHandle setters return Class& to allow for use of fluent interfaces. This includes array and dictionary mutators. diff --git a/examples/pdf-count-strings.cc b/examples/pdf-count-strings.cc index a52b7a37..23f4b6cb 100644 --- a/examples/pdf-count-strings.cc +++ b/examples/pdf-count-strings.cc @@ -32,9 +32,7 @@ class StringCounter: public QPDFObjectHandle::TokenFilter count(0) { } - virtual ~StringCounter() - { - } + virtual ~StringCounter() = default; virtual void handleToken(QPDFTokenizer::Token const&); virtual void handleEOF(); int getCount() const; diff --git a/examples/pdf-create.cc b/examples/pdf-create.cc index a7b7557e..b5adb01a 100644 --- a/examples/pdf-create.cc +++ b/examples/pdf-create.cc @@ -28,7 +28,7 @@ class ImageProvider: public QPDFObjectHandle::StreamDataProvider { public: ImageProvider(std::string const& color_space, std::string const& filter); - virtual ~ImageProvider(); + virtual ~ImageProvider() = default; virtual void provideStreamData(int objid, int generation, Pipeline* pipeline); size_t getWidth() const; @@ -80,10 +80,6 @@ ImageProvider::ImageProvider( } } -ImageProvider::~ImageProvider() -{ -} - size_t ImageProvider::getWidth() const { diff --git a/examples/pdf-filter-tokens.cc b/examples/pdf-filter-tokens.cc index eee90c33..59c85271 100644 --- a/examples/pdf-filter-tokens.cc +++ b/examples/pdf-filter-tokens.cc @@ -35,9 +35,7 @@ usage() class StringReverser: public QPDFObjectHandle::TokenFilter { public: - virtual ~StringReverser() - { - } + virtual ~StringReverser() = default; virtual void handleToken(QPDFTokenizer::Token const&); }; @@ -70,9 +68,7 @@ StringReverser::handleToken(QPDFTokenizer::Token const& token) class ColorToGray: public QPDFObjectHandle::TokenFilter { public: - virtual ~ColorToGray() - { - } + virtual ~ColorToGray() = default; virtual void handleToken(QPDFTokenizer::Token const&); virtual void handleEOF(); diff --git a/examples/pdf-invert-images.cc b/examples/pdf-invert-images.cc index 033e3622..2ce8f988 100644 --- a/examples/pdf-invert-images.cc +++ b/examples/pdf-invert-images.cc @@ -33,9 +33,7 @@ usage() class ImageInverter: public QPDFObjectHandle::StreamDataProvider { public: - virtual ~ImageInverter() - { - } + virtual ~ImageInverter() = default; virtual void provideStreamData(int objid, int generation, Pipeline* pipeline) override; diff --git a/examples/pdf-parse-content.cc b/examples/pdf-parse-content.cc index f1f7ab55..6bc94da2 100644 --- a/examples/pdf-parse-content.cc +++ b/examples/pdf-parse-content.cc @@ -23,10 +23,7 @@ usage() class ParserCallbacks: public QPDFObjectHandle::ParserCallbacks { public: - virtual ~ParserCallbacks() - { - } - + virtual ~ParserCallbacks() = default; virtual void contentSize(size_t); virtual void handleObject(QPDFObjectHandle, size_t offset, size_t length); virtual void handleEOF(); diff --git a/fuzz/qpdf_fuzzer.cc b/fuzz/qpdf_fuzzer.cc index 15469782..aba08c7f 100644 --- a/fuzz/qpdf_fuzzer.cc +++ b/fuzz/qpdf_fuzzer.cc @@ -14,9 +14,7 @@ class DiscardContents: public QPDFObjectHandle::ParserCallbacks { public: - virtual ~DiscardContents() - { - } + virtual ~DiscardContents() = default; virtual void handleObject(QPDFObjectHandle) { diff --git a/include/qpdf/Buffer.hh b/include/qpdf/Buffer.hh index d725006a..fdb07ba7 100644 --- a/include/qpdf/Buffer.hh +++ b/include/qpdf/Buffer.hh @@ -66,7 +66,7 @@ class Buffer private: Members(size_t size, unsigned char* buf, bool own_memory); - Members(Members const&); + Members(Members const&) = delete; bool own_memory; size_t size; diff --git a/include/qpdf/BufferInputSource.hh b/include/qpdf/BufferInputSource.hh index 53c362a9..b965704f 100644 --- a/include/qpdf/BufferInputSource.hh +++ b/include/qpdf/BufferInputSource.hh @@ -60,11 +60,11 @@ class QPDF_DLL_CLASS BufferInputSource: public InputSource public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(bool own_memory, std::string const& description, Buffer* buf); - Members(Members const&); + Members(Members const&) = delete; bool own_memory; std::string description; diff --git a/include/qpdf/ClosedFileInputSource.hh b/include/qpdf/ClosedFileInputSource.hh index e82c4410..c72a1df8 100644 --- a/include/qpdf/ClosedFileInputSource.hh +++ b/include/qpdf/ClosedFileInputSource.hh @@ -79,7 +79,7 @@ class QPDF_DLL_CLASS ClosedFileInputSource: public InputSource public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(char const* filename); diff --git a/include/qpdf/FileInputSource.hh b/include/qpdf/FileInputSource.hh index c3b60265..1b4f5d6a 100644 --- a/include/qpdf/FileInputSource.hh +++ b/include/qpdf/FileInputSource.hh @@ -64,7 +64,7 @@ class QPDF_DLL_CLASS FileInputSource: public InputSource private: Members(bool close_file); - Members(Members const&); + Members(Members const&) = delete; bool close_file; std::string filename; diff --git a/include/qpdf/InputSource.hh b/include/qpdf/InputSource.hh index 94dec500..9feb8ec3 100644 --- a/include/qpdf/InputSource.hh +++ b/include/qpdf/InputSource.hh @@ -42,20 +42,13 @@ class QPDF_DLL_CLASS InputSource { } QPDF_DLL - virtual ~InputSource() - { - } + virtual ~InputSource() = default; class QPDF_DLL_CLASS Finder { public: - Finder() - { - } - virtual ~Finder() - { - } - + Finder() = default; + virtual ~Finder() = default; virtual bool check() = 0; }; @@ -110,11 +103,11 @@ class QPDF_DLL_CLASS InputSource public: QPDF_DLL - ~Members(); + ~Members() = default; private: - Members(); - Members(Members const&); + Members() = default; + Members(Members const&) = delete; }; std::shared_ptr m; diff --git a/include/qpdf/JSON.hh b/include/qpdf/JSON.hh index 2961d8a9..a2a0ea27 100644 --- a/include/qpdf/JSON.hh +++ b/include/qpdf/JSON.hh @@ -150,25 +150,25 @@ class JSON struct JSON_value { - virtual ~JSON_value(); + virtual ~JSON_value() = default; virtual std::string unparse(size_t depth) const = 0; }; struct JSON_dictionary: public JSON_value { - virtual ~JSON_dictionary(); + virtual ~JSON_dictionary() = default; virtual std::string unparse(size_t depth) const; std::map> members; }; struct JSON_array: public JSON_value { - virtual ~JSON_array(); + virtual ~JSON_array() = default; virtual std::string unparse(size_t depth) const; std::vector> elements; }; struct JSON_string: public JSON_value { JSON_string(std::string const& utf8); - virtual ~JSON_string(); + virtual ~JSON_string() = default; virtual std::string unparse(size_t depth) const; std::string utf8; std::string encoded; @@ -178,20 +178,20 @@ class JSON JSON_number(long long val); JSON_number(double val); JSON_number(std::string const& val); - virtual ~JSON_number(); + virtual ~JSON_number() = default; virtual std::string unparse(size_t depth) const; std::string encoded; }; struct JSON_bool: public JSON_value { JSON_bool(bool val); - virtual ~JSON_bool(); + virtual ~JSON_bool() = default; virtual std::string unparse(size_t depth) const; bool value; }; struct JSON_null: public JSON_value { - virtual ~JSON_null(); + virtual ~JSON_null() = default; virtual std::string unparse(size_t depth) const; }; @@ -210,11 +210,11 @@ class JSON public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(std::shared_ptr); - Members(Members const&); + Members(Members const&) = delete; std::shared_ptr value; }; diff --git a/include/qpdf/Pipeline.hh b/include/qpdf/Pipeline.hh index 2a2f9d3c..09ec0925 100644 --- a/include/qpdf/Pipeline.hh +++ b/include/qpdf/Pipeline.hh @@ -59,7 +59,7 @@ class QPDF_DLL_CLASS Pipeline Pipeline(char const* identifier, Pipeline* next); QPDF_DLL - virtual ~Pipeline(); + virtual ~Pipeline() = default; // Subclasses should implement write and finish to do their jobs // and then, if they are not end-of-line pipelines, call diff --git a/include/qpdf/Pl_Buffer.hh b/include/qpdf/Pl_Buffer.hh index f72646f0..d9aec078 100644 --- a/include/qpdf/Pl_Buffer.hh +++ b/include/qpdf/Pl_Buffer.hh @@ -77,11 +77,11 @@ class QPDF_DLL_CLASS Pl_Buffer: public Pipeline public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(); - Members(Members const&); + Members(Members const&) = delete; bool ready; std::shared_ptr data; diff --git a/include/qpdf/Pl_Concatenate.hh b/include/qpdf/Pl_Concatenate.hh index 702c48e4..1f4e2f40 100644 --- a/include/qpdf/Pl_Concatenate.hh +++ b/include/qpdf/Pl_Concatenate.hh @@ -56,11 +56,11 @@ class QPDF_DLL_CLASS Pl_Concatenate: public Pipeline public: QPDF_DLL - ~Members(); + ~Members() = default; private: - Members(); - Members(Members const&); + Members() = default; + Members(Members const&) = delete; }; std::shared_ptr m; diff --git a/include/qpdf/Pl_Count.hh b/include/qpdf/Pl_Count.hh index 8d9bc6b7..d0bf8cb3 100644 --- a/include/qpdf/Pl_Count.hh +++ b/include/qpdf/Pl_Count.hh @@ -54,11 +54,11 @@ class QPDF_DLL_CLASS Pl_Count: public Pipeline public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(); - Members(Members const&); + Members(Members const&) = delete; // Must be qpdf_offset_t, not size_t, to handle writing more than // size_t can handle. diff --git a/include/qpdf/Pl_DCT.hh b/include/qpdf/Pl_DCT.hh index 0bbf302b..3503ac77 100644 --- a/include/qpdf/Pl_DCT.hh +++ b/include/qpdf/Pl_DCT.hh @@ -41,12 +41,8 @@ class QPDF_DLL_CLASS Pl_DCT: public Pipeline class QPDF_DLL_CLASS CompressConfig { public: - CompressConfig() - { - } - virtual ~CompressConfig() - { - } + CompressConfig() = default; + virtual ~CompressConfig() = default; virtual void apply(jpeg_compress_struct*) = 0; }; @@ -83,7 +79,7 @@ class QPDF_DLL_CLASS Pl_DCT: public Pipeline public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members( @@ -94,7 +90,7 @@ class QPDF_DLL_CLASS Pl_DCT: public Pipeline int components = 1, J_COLOR_SPACE color_space = JCS_GRAYSCALE, CompressConfig* config_callback = 0); - Members(Members const&); + Members(Members const&) = delete; action_e action; Pl_Buffer buf; diff --git a/include/qpdf/Pl_Discard.hh b/include/qpdf/Pl_Discard.hh index 051f9fe1..c58c162a 100644 --- a/include/qpdf/Pl_Discard.hh +++ b/include/qpdf/Pl_Discard.hh @@ -49,11 +49,11 @@ class QPDF_DLL_CLASS Pl_Discard: public Pipeline public: QPDF_DLL - ~Members(); + ~Members() = default; private: - Members(); - Members(Members const&); + Members() = default; + Members(Members const&) = delete; }; std::shared_ptr m; diff --git a/include/qpdf/Pl_Flate.hh b/include/qpdf/Pl_Flate.hh index 5cfe17f4..daf05836 100644 --- a/include/qpdf/Pl_Flate.hh +++ b/include/qpdf/Pl_Flate.hh @@ -80,7 +80,7 @@ class QPDF_DLL_CLASS Pl_Flate: public Pipeline private: Members(size_t out_bufsize, action_e action); - Members(Members const&); + Members(Members const&) = delete; std::shared_ptr outbuf; size_t out_bufsize; diff --git a/include/qpdf/Pl_QPDFTokenizer.hh b/include/qpdf/Pl_QPDFTokenizer.hh index d5b531e2..20f36603 100644 --- a/include/qpdf/Pl_QPDFTokenizer.hh +++ b/include/qpdf/Pl_QPDFTokenizer.hh @@ -66,11 +66,11 @@ class QPDF_DLL_CLASS Pl_QPDFTokenizer: public Pipeline public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(); - Members(Members const&); + Members(Members const&) = delete; QPDFObjectHandle::TokenFilter* filter; QPDFTokenizer tokenizer; diff --git a/include/qpdf/Pl_RunLength.hh b/include/qpdf/Pl_RunLength.hh index ce2b0e90..47c72d65 100644 --- a/include/qpdf/Pl_RunLength.hh +++ b/include/qpdf/Pl_RunLength.hh @@ -55,11 +55,11 @@ class QPDF_DLL_CLASS Pl_RunLength: public Pipeline public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(action_e); - Members(Members const&); + Members(Members const&) = delete; action_e action; state_e state; diff --git a/include/qpdf/Pl_StdioFile.hh b/include/qpdf/Pl_StdioFile.hh index 64f4738d..1dfb6c99 100644 --- a/include/qpdf/Pl_StdioFile.hh +++ b/include/qpdf/Pl_StdioFile.hh @@ -54,11 +54,11 @@ class QPDF_DLL_CLASS Pl_StdioFile: public Pipeline public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(FILE*); - Members(Members const&); + Members(Members const&) = delete; FILE* file; }; diff --git a/include/qpdf/QPDF.hh b/include/qpdf/QPDF.hh index bc0096b7..e704c2f8 100644 --- a/include/qpdf/QPDF.hh +++ b/include/qpdf/QPDF.hh @@ -913,9 +913,7 @@ class QPDF { public: CopiedStreamDataProvider(QPDF& destination_qpdf); - virtual ~CopiedStreamDataProvider() - { - } + virtual ~CopiedStreamDataProvider() = default; virtual bool provideStreamData( int objid, int generation, @@ -940,9 +938,7 @@ class QPDF public: StringDecrypter(QPDF* qpdf, int objid, int gen); - virtual ~StringDecrypter() - { - } + virtual ~StringDecrypter() = default; virtual void decryptString(std::string& val); private: @@ -1381,9 +1377,7 @@ class QPDF checker(checker) { } - virtual ~PatternFinder() - { - } + virtual ~PatternFinder() = default; virtual bool check() { @@ -1509,11 +1503,11 @@ class QPDF public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(); - Members(Members const&); + Members(Members const&) = delete; unsigned long long unique_id; QPDFTokenizer tokenizer; diff --git a/include/qpdf/QPDFAcroFormDocumentHelper.hh b/include/qpdf/QPDFAcroFormDocumentHelper.hh index 5347dcd9..690aecfd 100644 --- a/include/qpdf/QPDFAcroFormDocumentHelper.hh +++ b/include/qpdf/QPDFAcroFormDocumentHelper.hh @@ -85,9 +85,7 @@ class QPDFAcroFormDocumentHelper: public QPDFDocumentHelper QPDF_DLL QPDFAcroFormDocumentHelper(QPDF&); QPDF_DLL - virtual ~QPDFAcroFormDocumentHelper() - { - } + virtual ~QPDFAcroFormDocumentHelper() = default; // This class lazily creates an internal cache of the mapping // among form fields, annotations, and pages. Methods within this @@ -291,11 +289,11 @@ class QPDFAcroFormDocumentHelper: public QPDFDocumentHelper public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(); - Members(Members const&); + Members(Members const&) = delete; bool cache_valid; std::map> diff --git a/include/qpdf/QPDFAnnotationObjectHelper.hh b/include/qpdf/QPDFAnnotationObjectHelper.hh index de408abd..2f0bc6b9 100644 --- a/include/qpdf/QPDFAnnotationObjectHelper.hh +++ b/include/qpdf/QPDFAnnotationObjectHelper.hh @@ -33,9 +33,7 @@ class QPDFAnnotationObjectHelper: public QPDFObjectHelper QPDF_DLL QPDFAnnotationObjectHelper(QPDFObjectHandle); QPDF_DLL - virtual ~QPDFAnnotationObjectHelper() - { - } + virtual ~QPDFAnnotationObjectHelper() = default; // This class provides helper methods for annotations. More // functionality will likely be added in the future. @@ -108,11 +106,11 @@ class QPDFAnnotationObjectHelper: public QPDFObjectHelper public: QPDF_DLL - ~Members(); + ~Members() = default; private: - Members(); - Members(Members const&); + Members() = default; + Members(Members const&) = delete; }; std::shared_ptr m; diff --git a/include/qpdf/QPDFDocumentHelper.hh b/include/qpdf/QPDFDocumentHelper.hh index d33e90b8..55fe3c9c 100644 --- a/include/qpdf/QPDFDocumentHelper.hh +++ b/include/qpdf/QPDFDocumentHelper.hh @@ -45,9 +45,7 @@ class QPDFDocumentHelper { } QPDF_DLL - virtual ~QPDFDocumentHelper() - { - } + virtual ~QPDFDocumentHelper() = default; QPDF_DLL QPDF& getQPDF() diff --git a/include/qpdf/QPDFEFStreamObjectHelper.hh b/include/qpdf/QPDFEFStreamObjectHelper.hh index afcc5bd2..b39b6a7a 100644 --- a/include/qpdf/QPDFEFStreamObjectHelper.hh +++ b/include/qpdf/QPDFEFStreamObjectHelper.hh @@ -112,7 +112,7 @@ class QPDFEFStreamObjectHelper: public QPDFObjectHelper ~Members() = default; private: - Members(); + Members() = default; Members(Members const&) = delete; }; diff --git a/include/qpdf/QPDFEmbeddedFileDocumentHelper.hh b/include/qpdf/QPDFEmbeddedFileDocumentHelper.hh index f09e8c24..0243be4e 100644 --- a/include/qpdf/QPDFEmbeddedFileDocumentHelper.hh +++ b/include/qpdf/QPDFEmbeddedFileDocumentHelper.hh @@ -85,7 +85,7 @@ class QPDFEmbeddedFileDocumentHelper: public QPDFDocumentHelper ~Members() = default; private: - Members(); + Members() = default; Members(Members const&) = delete; std::shared_ptr embedded_files; diff --git a/include/qpdf/QPDFExc.hh b/include/qpdf/QPDFExc.hh index d9d7312b..c596e072 100644 --- a/include/qpdf/QPDFExc.hh +++ b/include/qpdf/QPDFExc.hh @@ -40,9 +40,7 @@ class QPDF_DLL_CLASS QPDFExc: public std::runtime_error qpdf_offset_t offset, std::string const& message); QPDF_DLL - virtual ~QPDFExc() noexcept - { - } + virtual ~QPDFExc() noexcept = default; // To get a complete error string, call what(), provided by // std::exception. The accessors below return the original values diff --git a/include/qpdf/QPDFFileSpecObjectHelper.hh b/include/qpdf/QPDFFileSpecObjectHelper.hh index d0b4f185..30f4eed9 100644 --- a/include/qpdf/QPDFFileSpecObjectHelper.hh +++ b/include/qpdf/QPDFFileSpecObjectHelper.hh @@ -109,7 +109,7 @@ class QPDFFileSpecObjectHelper: public QPDFObjectHelper ~Members() = default; private: - Members(); + Members() = default; Members(Members const&) = delete; }; diff --git a/include/qpdf/QPDFFormFieldObjectHelper.hh b/include/qpdf/QPDFFormFieldObjectHelper.hh index e5ffeef2..4bad5d1e 100644 --- a/include/qpdf/QPDFFormFieldObjectHelper.hh +++ b/include/qpdf/QPDFFormFieldObjectHelper.hh @@ -41,9 +41,7 @@ class QPDFFormFieldObjectHelper: public QPDFObjectHelper QPDF_DLL QPDFFormFieldObjectHelper(QPDFObjectHandle); QPDF_DLL - virtual ~QPDFFormFieldObjectHelper() - { - } + virtual ~QPDFFormFieldObjectHelper() = default; QPDF_DLL bool isNull(); @@ -229,11 +227,11 @@ class QPDFFormFieldObjectHelper: public QPDFObjectHelper public: QPDF_DLL - ~Members(); + ~Members() = default; private: - Members(); - Members(Members const&); + Members() = default; + Members(Members const&) = delete; }; std::shared_ptr m; diff --git a/include/qpdf/QPDFNameTreeObjectHelper.hh b/include/qpdf/QPDFNameTreeObjectHelper.hh index 11d7b5a2..194fc926 100644 --- a/include/qpdf/QPDFNameTreeObjectHelper.hh +++ b/include/qpdf/QPDFNameTreeObjectHelper.hh @@ -62,7 +62,7 @@ class QPDFNameTreeObjectHelper: public QPDFObjectHelper static QPDFNameTreeObjectHelper newEmpty(QPDF&, bool auto_repair = true); QPDF_DLL - virtual ~QPDFNameTreeObjectHelper(); + virtual ~QPDFNameTreeObjectHelper() = default; // Return whether the number tree has an explicit entry for this // number. @@ -194,7 +194,7 @@ class QPDFNameTreeObjectHelper: public QPDFObjectHelper public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(QPDFObjectHandle& oh, QPDF*, bool auto_repair); diff --git a/include/qpdf/QPDFNumberTreeObjectHelper.hh b/include/qpdf/QPDFNumberTreeObjectHelper.hh index bb34373c..4dbef98a 100644 --- a/include/qpdf/QPDFNumberTreeObjectHelper.hh +++ b/include/qpdf/QPDFNumberTreeObjectHelper.hh @@ -55,11 +55,8 @@ class QPDFNumberTreeObjectHelper: public QPDFObjectHelper [[deprecated("use constructor that takes QPDF&")]] QPDF_DLL QPDFNumberTreeObjectHelper(QPDFObjectHandle); - // ABI: = default QPDF_DLL - virtual ~QPDFNumberTreeObjectHelper() - { - } + virtual ~QPDFNumberTreeObjectHelper() = default; // Create an empty number tree QPDF_DLL @@ -217,7 +214,7 @@ class QPDFNumberTreeObjectHelper: public QPDFObjectHelper public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(QPDFObjectHandle& oh, QPDF*, bool auto_repair); diff --git a/include/qpdf/QPDFObject.hh b/include/qpdf/QPDFObject.hh index 897a61dd..43146e53 100644 --- a/include/qpdf/QPDFObject.hh +++ b/include/qpdf/QPDFObject.hh @@ -62,9 +62,7 @@ class QPDFObject static constexpr object_type_e ot_operator = ::ot_operator; static constexpr object_type_e ot_inlineimage = ::ot_inlineimage; - virtual ~QPDFObject() - { - } + virtual ~QPDFObject() = default; virtual std::string unparse() = 0; virtual JSON getJSON() = 0; diff --git a/include/qpdf/QPDFObjectHandle.hh b/include/qpdf/QPDFObjectHandle.hh index a09fd954..5b2a6764 100644 --- a/include/qpdf/QPDFObjectHandle.hh +++ b/include/qpdf/QPDFObjectHandle.hh @@ -64,9 +64,7 @@ class QPDFObjectHandle StreamDataProvider(bool supports_retry = false); QPDF_DLL - virtual ~StreamDataProvider() - { - } + virtual ~StreamDataProvider(); // The implementation of this function must write stream data // to the given pipeline. The stream data must conform to // whatever filters are explicitly associated with the stream. @@ -172,13 +170,9 @@ class QPDFObjectHandle { public: QPDF_DLL - TokenFilter() - { - } + TokenFilter() = default; QPDF_DLL - virtual ~TokenFilter() - { - } + virtual ~TokenFilter() = default; virtual void handleToken(QPDFTokenizer::Token const&) = 0; QPDF_DLL virtual void handleEOF(); @@ -216,9 +210,7 @@ class QPDFObjectHandle { public: QPDF_DLL - virtual ~StringDecrypter() - { - } + virtual ~StringDecrypter() = default; virtual void decryptString(std::string& val) = 0; }; @@ -229,9 +221,7 @@ class QPDFObjectHandle { public: QPDF_DLL - virtual ~ParserCallbacks() - { - } + virtual ~ParserCallbacks() = default; // One of the handleObject methods must be overridden. QPDF_DLL virtual void handleObject(QPDFObjectHandle); diff --git a/include/qpdf/QPDFObjectHelper.hh b/include/qpdf/QPDFObjectHelper.hh index 32577681..db3876ec 100644 --- a/include/qpdf/QPDFObjectHelper.hh +++ b/include/qpdf/QPDFObjectHelper.hh @@ -46,9 +46,7 @@ class QPDFObjectHelper { } QPDF_DLL - virtual ~QPDFObjectHelper() - { - } + virtual ~QPDFObjectHelper() = default; QPDF_DLL QPDFObjectHandle getObjectHandle() diff --git a/include/qpdf/QPDFOutlineDocumentHelper.hh b/include/qpdf/QPDFOutlineDocumentHelper.hh index 2049a072..28328c71 100644 --- a/include/qpdf/QPDFOutlineDocumentHelper.hh +++ b/include/qpdf/QPDFOutlineDocumentHelper.hh @@ -45,7 +45,7 @@ class QPDFOutlineDocumentHelper: public QPDFDocumentHelper QPDF_DLL QPDFOutlineDocumentHelper(QPDF&); QPDF_DLL - virtual ~QPDFOutlineDocumentHelper(); + virtual ~QPDFOutlineDocumentHelper() = default; QPDF_DLL bool hasOutlines(); @@ -88,11 +88,11 @@ class QPDFOutlineDocumentHelper: public QPDFDocumentHelper public: QPDF_DLL - ~Members(); + ~Members() = default; private: - Members(); - Members(Members const&); + Members() = default; + Members(Members const&) = delete; std::vector outlines; std::set seen; diff --git a/include/qpdf/QPDFOutlineObjectHelper.hh b/include/qpdf/QPDFOutlineObjectHelper.hh index ece5acf0..6c91909c 100644 --- a/include/qpdf/QPDFOutlineObjectHelper.hh +++ b/include/qpdf/QPDFOutlineObjectHelper.hh @@ -105,11 +105,11 @@ class QPDFOutlineObjectHelper: public QPDFObjectHelper public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(QPDFOutlineDocumentHelper& dh); - Members(Members const&); + Members(Members const&) = delete; QPDFOutlineDocumentHelper& dh; std::shared_ptr parent; diff --git a/include/qpdf/QPDFPageDocumentHelper.hh b/include/qpdf/QPDFPageDocumentHelper.hh index 2ffa8dd1..f8b2ac7e 100644 --- a/include/qpdf/QPDFPageDocumentHelper.hh +++ b/include/qpdf/QPDFPageDocumentHelper.hh @@ -40,9 +40,7 @@ class QPDFPageDocumentHelper: public QPDFDocumentHelper QPDF_DLL QPDFPageDocumentHelper(QPDF&); QPDF_DLL - virtual ~QPDFPageDocumentHelper() - { - } + virtual ~QPDFPageDocumentHelper() = default; // Traverse page tree, and return all /Page objects wrapped in // QPDFPageObjectHelper objects. Unlike with @@ -144,11 +142,11 @@ class QPDFPageDocumentHelper: public QPDFDocumentHelper public: QPDF_DLL - ~Members(); + ~Members() = default; private: - Members(); - Members(Members const&); + Members() = default; + Members(Members const&) = delete; }; std::shared_ptr m; diff --git a/include/qpdf/QPDFPageLabelDocumentHelper.hh b/include/qpdf/QPDFPageLabelDocumentHelper.hh index eef2accc..76aade9c 100644 --- a/include/qpdf/QPDFPageLabelDocumentHelper.hh +++ b/include/qpdf/QPDFPageLabelDocumentHelper.hh @@ -50,9 +50,7 @@ class QPDFPageLabelDocumentHelper: public QPDFDocumentHelper QPDF_DLL QPDFPageLabelDocumentHelper(QPDF&); QPDF_DLL - virtual ~QPDFPageLabelDocumentHelper() - { - } + virtual ~QPDFPageLabelDocumentHelper() = default; QPDF_DLL bool hasPageLabels(); @@ -90,11 +88,11 @@ class QPDFPageLabelDocumentHelper: public QPDFDocumentHelper public: QPDF_DLL - ~Members(); + ~Members() = default; private: - Members(); - Members(Members const&); + Members() = default; + Members(Members const&) = delete; std::shared_ptr labels; }; diff --git a/include/qpdf/QPDFPageObjectHelper.hh b/include/qpdf/QPDFPageObjectHelper.hh index f35e4cf4..df4c7864 100644 --- a/include/qpdf/QPDFPageObjectHelper.hh +++ b/include/qpdf/QPDFPageObjectHelper.hh @@ -43,9 +43,7 @@ class QPDFPageObjectHelper: public QPDFObjectHelper QPDF_DLL QPDFPageObjectHelper(QPDFObjectHandle); QPDF_DLL - virtual ~QPDFPageObjectHelper() - { - } + virtual ~QPDFPageObjectHelper() = default; // Works with pages and form XObjects. Return the effective value // of this attribute for the page/form XObject. For pages, if the @@ -384,11 +382,11 @@ class QPDFPageObjectHelper: public QPDFObjectHelper public: QPDF_DLL - ~Members(); + ~Members() = default; private: - Members(); - Members(Members const&); + Members() = default; + Members(Members const&) = delete; }; std::shared_ptr m; diff --git a/include/qpdf/QPDFSystemError.hh b/include/qpdf/QPDFSystemError.hh index f6c62224..22fb3fc1 100644 --- a/include/qpdf/QPDFSystemError.hh +++ b/include/qpdf/QPDFSystemError.hh @@ -35,7 +35,7 @@ class QPDF_DLL_CLASS QPDFSystemError: public std::runtime_error QPDF_DLL QPDFSystemError(std::string const& description, int system_errno); QPDF_DLL - virtual ~QPDFSystemError() noexcept; + virtual ~QPDFSystemError() noexcept = default; // To get a complete error string, call what(), provided by // std::exception. The accessors below return the original values diff --git a/include/qpdf/QPDFTokenizer.hh b/include/qpdf/QPDFTokenizer.hh index 9cd51acc..2187f21e 100644 --- a/include/qpdf/QPDFTokenizer.hh +++ b/include/qpdf/QPDFTokenizer.hh @@ -217,11 +217,11 @@ class QPDFTokenizer public: QPDF_DLL - ~Members(); + ~Members() = default; private: Members(); - Members(Members const&); + Members(Members const&) = delete; void reset(); // Lexer state diff --git a/include/qpdf/QPDFWriter.hh b/include/qpdf/QPDFWriter.hh index c5e33fd2..5d3ad5df 100644 --- a/include/qpdf/QPDFWriter.hh +++ b/include/qpdf/QPDFWriter.hh @@ -75,14 +75,12 @@ class QPDFWriter QPDFWriter(QPDF& pdf, char const* description, FILE* file, bool close_file); QPDF_DLL - ~QPDFWriter(); + ~QPDFWriter() = default; class QPDF_DLL_CLASS ProgressReporter { public: - virtual ~ProgressReporter() - { - } + virtual ~ProgressReporter() = default; // This method is called with a value from 0 to 100 to // indicate approximate progress through the write process. @@ -718,7 +716,7 @@ class QPDFWriter private: Members(QPDF& pdf); - Members(Members const&); + Members(Members const&) = delete; QPDF& pdf; char const* filename; diff --git a/include/qpdf/RandomDataProvider.hh b/include/qpdf/RandomDataProvider.hh index 6b316ee1..023bf995 100644 --- a/include/qpdf/RandomDataProvider.hh +++ b/include/qpdf/RandomDataProvider.hh @@ -28,9 +28,7 @@ class QPDF_DLL_CLASS RandomDataProvider { public: - virtual ~RandomDataProvider() - { - } + virtual ~RandomDataProvider() = default; virtual void provideRandomData(unsigned char* data, size_t len) = 0; protected: diff --git a/libqpdf/AES_PDF_native.cc b/libqpdf/AES_PDF_native.cc index a6addb53..3a831efe 100644 --- a/libqpdf/AES_PDF_native.cc +++ b/libqpdf/AES_PDF_native.cc @@ -36,10 +36,6 @@ AES_PDF_native::AES_PDF_native( } } -AES_PDF_native::~AES_PDF_native() -{ -} - void AES_PDF_native::update(unsigned char* in_data, unsigned char* out_data) { diff --git a/libqpdf/BufferInputSource.cc b/libqpdf/BufferInputSource.cc index 25e0d7c1..033ef265 100644 --- a/libqpdf/BufferInputSource.cc +++ b/libqpdf/BufferInputSource.cc @@ -17,10 +17,6 @@ BufferInputSource::Members::Members( { } -BufferInputSource::Members::~Members() -{ -} - BufferInputSource::BufferInputSource( std::string const& description, Buffer* buf, bool own_memory) : m(new Members(own_memory, description, buf)) diff --git a/libqpdf/ClosedFileInputSource.cc b/libqpdf/ClosedFileInputSource.cc index 69e819c9..7c4e5dbe 100644 --- a/libqpdf/ClosedFileInputSource.cc +++ b/libqpdf/ClosedFileInputSource.cc @@ -9,10 +9,6 @@ ClosedFileInputSource::Members::Members(char const* filename) : { } -ClosedFileInputSource::Members::~Members() -{ -} - ClosedFileInputSource::ClosedFileInputSource(char const* filename) : m(new Members(filename)) { @@ -20,6 +16,8 @@ ClosedFileInputSource::ClosedFileInputSource(char const* filename) : ClosedFileInputSource::~ClosedFileInputSource() { + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer } void diff --git a/libqpdf/ContentNormalizer.cc b/libqpdf/ContentNormalizer.cc index d7f3cbd7..93f3aad1 100644 --- a/libqpdf/ContentNormalizer.cc +++ b/libqpdf/ContentNormalizer.cc @@ -8,10 +8,6 @@ ContentNormalizer::ContentNormalizer() : { } -ContentNormalizer::~ContentNormalizer() -{ -} - void ContentNormalizer::handleToken(QPDFTokenizer::Token const& token) { diff --git a/libqpdf/CryptoRandomDataProvider.cc b/libqpdf/CryptoRandomDataProvider.cc index 6792c79b..e1ae38a9 100644 --- a/libqpdf/CryptoRandomDataProvider.cc +++ b/libqpdf/CryptoRandomDataProvider.cc @@ -2,14 +2,6 @@ #include -CryptoRandomDataProvider::CryptoRandomDataProvider() -{ -} - -CryptoRandomDataProvider::~CryptoRandomDataProvider() -{ -} - void CryptoRandomDataProvider::provideRandomData(unsigned char* data, size_t len) { diff --git a/libqpdf/FileInputSource.cc b/libqpdf/FileInputSource.cc index c502b2a8..9b467821 100644 --- a/libqpdf/FileInputSource.cc +++ b/libqpdf/FileInputSource.cc @@ -42,6 +42,8 @@ FileInputSource::setFile(char const* description, FILE* filep, bool close_file) FileInputSource::~FileInputSource() { + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer } qpdf_offset_t diff --git a/libqpdf/InputSource.cc b/libqpdf/InputSource.cc index 00ebccb5..ba4c3cbc 100644 --- a/libqpdf/InputSource.cc +++ b/libqpdf/InputSource.cc @@ -5,14 +5,6 @@ #include #include -InputSource::Members::Members() -{ -} - -InputSource::Members::~Members() -{ -} - void InputSource::setLastOffset(qpdf_offset_t offset) { diff --git a/libqpdf/InsecureRandomDataProvider.cc b/libqpdf/InsecureRandomDataProvider.cc index b29b0f9f..cb67cada 100644 --- a/libqpdf/InsecureRandomDataProvider.cc +++ b/libqpdf/InsecureRandomDataProvider.cc @@ -9,10 +9,6 @@ InsecureRandomDataProvider::InsecureRandomDataProvider() : { } -InsecureRandomDataProvider::~InsecureRandomDataProvider() -{ -} - void InsecureRandomDataProvider::provideRandomData(unsigned char* data, size_t len) { diff --git a/libqpdf/JSON.cc b/libqpdf/JSON.cc index 4f2a14d9..c02e06b8 100644 --- a/libqpdf/JSON.cc +++ b/libqpdf/JSON.cc @@ -5,10 +5,6 @@ #include #include -JSON::Members::~Members() -{ -} - JSON::Members::Members(std::shared_ptr value) : value(value) { @@ -19,14 +15,6 @@ JSON::JSON(std::shared_ptr value) : { } -JSON::JSON_value::~JSON_value() -{ -} - -JSON::JSON_dictionary::~JSON_dictionary() -{ -} - std::string JSON::JSON_dictionary::unparse(size_t depth) const { @@ -51,10 +39,6 @@ JSON::JSON_dictionary::unparse(size_t depth) const return result; } -JSON::JSON_array::~JSON_array() -{ -} - std::string JSON::JSON_array::unparse(size_t depth) const { @@ -84,10 +68,6 @@ JSON::JSON_string::JSON_string(std::string const& utf8) : { } -JSON::JSON_string::~JSON_string() -{ -} - std::string JSON::JSON_string::unparse(size_t) const { @@ -109,10 +89,6 @@ JSON::JSON_number::JSON_number(std::string const& value) : { } -JSON::JSON_number::~JSON_number() -{ -} - std::string JSON::JSON_number::unparse(size_t) const { @@ -124,20 +100,12 @@ JSON::JSON_bool::JSON_bool(bool val) : { } -JSON::JSON_bool::~JSON_bool() -{ -} - std::string JSON::JSON_bool::unparse(size_t) const { return value ? "true" : "false"; } -JSON::JSON_null::~JSON_null() -{ -} - std::string JSON::JSON_null::unparse(size_t) const { diff --git a/libqpdf/JSONHandler.cc b/libqpdf/JSONHandler.cc index e12c2b99..909aa7db 100644 --- a/libqpdf/JSONHandler.cc +++ b/libqpdf/JSONHandler.cc @@ -9,10 +9,6 @@ JSONHandler::JSONHandler() : { } -JSONHandler::Members::Members() -{ -} - void JSONHandler::usage(std::string const& msg) { diff --git a/libqpdf/OffsetInputSource.cc b/libqpdf/OffsetInputSource.cc index cf050f2e..3ea4fb9d 100644 --- a/libqpdf/OffsetInputSource.cc +++ b/libqpdf/OffsetInputSource.cc @@ -17,10 +17,6 @@ OffsetInputSource::OffsetInputSource( std::numeric_limits::max() - global_offset; } -OffsetInputSource::~OffsetInputSource() -{ -} - qpdf_offset_t OffsetInputSource::findAndSkipNextEOL() { diff --git a/libqpdf/Pipeline.cc b/libqpdf/Pipeline.cc index 87dddd5f..5c134896 100644 --- a/libqpdf/Pipeline.cc +++ b/libqpdf/Pipeline.cc @@ -8,10 +8,6 @@ Pipeline::Pipeline(char const* identifier, Pipeline* next) : { } -Pipeline::~Pipeline() -{ -} - Pipeline* Pipeline::getNext(bool allow_null) { diff --git a/libqpdf/Pl_AES_PDF.cc b/libqpdf/Pl_AES_PDF.cc index 7389cfca..80cd8534 100644 --- a/libqpdf/Pl_AES_PDF.cc +++ b/libqpdf/Pl_AES_PDF.cc @@ -35,10 +35,6 @@ Pl_AES_PDF::Pl_AES_PDF( std::memset(this->cbc_block, 0, this->buf_size); } -Pl_AES_PDF::~Pl_AES_PDF() -{ -} - void Pl_AES_PDF::useZeroIV() { diff --git a/libqpdf/Pl_ASCII85Decoder.cc b/libqpdf/Pl_ASCII85Decoder.cc index 5d1bbee2..41dad3b7 100644 --- a/libqpdf/Pl_ASCII85Decoder.cc +++ b/libqpdf/Pl_ASCII85Decoder.cc @@ -12,10 +12,6 @@ Pl_ASCII85Decoder::Pl_ASCII85Decoder(char const* identifier, Pipeline* next) : memset(this->inbuf, 117, 5); } -Pl_ASCII85Decoder::~Pl_ASCII85Decoder() -{ -} - void Pl_ASCII85Decoder::write(unsigned char* buf, size_t len) { diff --git a/libqpdf/Pl_ASCIIHexDecoder.cc b/libqpdf/Pl_ASCIIHexDecoder.cc index 654d9449..99247739 100644 --- a/libqpdf/Pl_ASCIIHexDecoder.cc +++ b/libqpdf/Pl_ASCIIHexDecoder.cc @@ -15,10 +15,6 @@ Pl_ASCIIHexDecoder::Pl_ASCIIHexDecoder(char const* identifier, Pipeline* next) : this->inbuf[2] = '\0'; } -Pl_ASCIIHexDecoder::~Pl_ASCIIHexDecoder() -{ -} - void Pl_ASCIIHexDecoder::write(unsigned char* buf, size_t len) { diff --git a/libqpdf/Pl_Buffer.cc b/libqpdf/Pl_Buffer.cc index a65a97f5..b47124d3 100644 --- a/libqpdf/Pl_Buffer.cc +++ b/libqpdf/Pl_Buffer.cc @@ -12,10 +12,6 @@ Pl_Buffer::Members::Members() : { } -Pl_Buffer::Members::~Members() -{ -} - Pl_Buffer::Pl_Buffer(char const* identifier, Pipeline* next) : Pipeline(identifier, next), m(new Members()) @@ -24,6 +20,8 @@ Pl_Buffer::Pl_Buffer(char const* identifier, Pipeline* next) : Pl_Buffer::~Pl_Buffer() { + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer } void diff --git a/libqpdf/Pl_Concatenate.cc b/libqpdf/Pl_Concatenate.cc index 7b227b0e..dc746183 100644 --- a/libqpdf/Pl_Concatenate.cc +++ b/libqpdf/Pl_Concatenate.cc @@ -1,13 +1,5 @@ #include -Pl_Concatenate::Members::Members() -{ -} - -Pl_Concatenate::Members::~Members() -{ -} - Pl_Concatenate::Pl_Concatenate(char const* identifier, Pipeline* next) : Pipeline(identifier, next) { @@ -15,6 +7,8 @@ Pl_Concatenate::Pl_Concatenate(char const* identifier, Pipeline* next) : Pl_Concatenate::~Pl_Concatenate() { + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer } void diff --git a/libqpdf/Pl_Count.cc b/libqpdf/Pl_Count.cc index 067f7cdb..fb135723 100644 --- a/libqpdf/Pl_Count.cc +++ b/libqpdf/Pl_Count.cc @@ -8,10 +8,6 @@ Pl_Count::Members::Members() : { } -Pl_Count::Members::~Members() -{ -} - Pl_Count::Pl_Count(char const* identifier, Pipeline* next) : Pipeline(identifier, next), m(new Members()) @@ -20,6 +16,8 @@ Pl_Count::Pl_Count(char const* identifier, Pipeline* next) : Pl_Count::~Pl_Count() { + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer } void diff --git a/libqpdf/Pl_DCT.cc b/libqpdf/Pl_DCT.cc index 974a6327..474acdd9 100644 --- a/libqpdf/Pl_DCT.cc +++ b/libqpdf/Pl_DCT.cc @@ -50,10 +50,6 @@ Pl_DCT::Members::Members( { } -Pl_DCT::Members::~Members() -{ -} - Pl_DCT::Pl_DCT(char const* identifier, Pipeline* next) : Pipeline(identifier, next), m(new Members(a_decompress, "DCT compressed image")) @@ -82,6 +78,8 @@ Pl_DCT::Pl_DCT( Pl_DCT::~Pl_DCT() { + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer } void diff --git a/libqpdf/Pl_Discard.cc b/libqpdf/Pl_Discard.cc index f2ba561f..fc46c3c1 100644 --- a/libqpdf/Pl_Discard.cc +++ b/libqpdf/Pl_Discard.cc @@ -2,14 +2,6 @@ // Exercised in md5 test suite -Pl_Discard::Members::Members() -{ -} - -Pl_Discard::Members::~Members() -{ -} - Pl_Discard::Pl_Discard() : Pipeline("discard", 0) { @@ -17,6 +9,8 @@ Pl_Discard::Pl_Discard() : Pl_Discard::~Pl_Discard() { + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer } void diff --git a/libqpdf/Pl_Flate.cc b/libqpdf/Pl_Flate.cc index b8bdc185..05a3bbcf 100644 --- a/libqpdf/Pl_Flate.cc +++ b/libqpdf/Pl_Flate.cc @@ -65,6 +65,8 @@ Pl_Flate::Pl_Flate( Pl_Flate::~Pl_Flate() { + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer } void diff --git a/libqpdf/Pl_LZWDecoder.cc b/libqpdf/Pl_LZWDecoder.cc index 34ed1bd7..68caa5c9 100644 --- a/libqpdf/Pl_LZWDecoder.cc +++ b/libqpdf/Pl_LZWDecoder.cc @@ -22,10 +22,6 @@ Pl_LZWDecoder::Pl_LZWDecoder( memset(buf, 0, 3); } -Pl_LZWDecoder::~Pl_LZWDecoder() -{ -} - void Pl_LZWDecoder::write(unsigned char* bytes, size_t len) { diff --git a/libqpdf/Pl_MD5.cc b/libqpdf/Pl_MD5.cc index 95e0a8d6..a5e64139 100644 --- a/libqpdf/Pl_MD5.cc +++ b/libqpdf/Pl_MD5.cc @@ -10,10 +10,6 @@ Pl_MD5::Pl_MD5(char const* identifier, Pipeline* next) : { } -Pl_MD5::~Pl_MD5() -{ -} - void Pl_MD5::write(unsigned char* buf, size_t len) { diff --git a/libqpdf/Pl_PNGFilter.cc b/libqpdf/Pl_PNGFilter.cc index dea8db9f..d62aec56 100644 --- a/libqpdf/Pl_PNGFilter.cc +++ b/libqpdf/Pl_PNGFilter.cc @@ -61,10 +61,6 @@ Pl_PNGFilter::Pl_PNGFilter( (action == a_encode ? this->bytes_per_row : this->bytes_per_row + 1); } -Pl_PNGFilter::~Pl_PNGFilter() -{ -} - void Pl_PNGFilter::write(unsigned char* data, size_t len) { diff --git a/libqpdf/Pl_QPDFTokenizer.cc b/libqpdf/Pl_QPDFTokenizer.cc index dfca0b5d..97efb51b 100644 --- a/libqpdf/Pl_QPDFTokenizer.cc +++ b/libqpdf/Pl_QPDFTokenizer.cc @@ -12,10 +12,6 @@ Pl_QPDFTokenizer::Members::Members() : { } -Pl_QPDFTokenizer::Members::~Members() -{ -} - Pl_QPDFTokenizer::Pl_QPDFTokenizer( char const* identifier, QPDFObjectHandle::TokenFilter* filter, @@ -32,6 +28,8 @@ Pl_QPDFTokenizer::Pl_QPDFTokenizer( Pl_QPDFTokenizer::~Pl_QPDFTokenizer() { + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer } void diff --git a/libqpdf/Pl_RC4.cc b/libqpdf/Pl_RC4.cc index b8d9645a..6f04ab62 100644 --- a/libqpdf/Pl_RC4.cc +++ b/libqpdf/Pl_RC4.cc @@ -15,10 +15,6 @@ Pl_RC4::Pl_RC4( this->outbuf = QUtil::make_shared_array(out_bufsize); } -Pl_RC4::~Pl_RC4() -{ -} - void Pl_RC4::write(unsigned char* data, size_t len) { diff --git a/libqpdf/Pl_RunLength.cc b/libqpdf/Pl_RunLength.cc index b92e2756..86e4b684 100644 --- a/libqpdf/Pl_RunLength.cc +++ b/libqpdf/Pl_RunLength.cc @@ -10,10 +10,6 @@ Pl_RunLength::Members::Members(action_e action) : { } -Pl_RunLength::Members::~Members() -{ -} - Pl_RunLength::Pl_RunLength( char const* identifier, Pipeline* next, action_e action) : Pipeline(identifier, next), @@ -23,6 +19,8 @@ Pl_RunLength::Pl_RunLength( Pl_RunLength::~Pl_RunLength() { + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer } void diff --git a/libqpdf/Pl_SHA2.cc b/libqpdf/Pl_SHA2.cc index 3113729f..a89cf218 100644 --- a/libqpdf/Pl_SHA2.cc +++ b/libqpdf/Pl_SHA2.cc @@ -14,10 +14,6 @@ Pl_SHA2::Pl_SHA2(int bits, Pipeline* next) : } } -Pl_SHA2::~Pl_SHA2() -{ -} - void Pl_SHA2::write(unsigned char* buf, size_t len) { diff --git a/libqpdf/Pl_StdioFile.cc b/libqpdf/Pl_StdioFile.cc index 4f30ae22..78b3114e 100644 --- a/libqpdf/Pl_StdioFile.cc +++ b/libqpdf/Pl_StdioFile.cc @@ -11,10 +11,6 @@ Pl_StdioFile::Members::Members(FILE* f) : { } -Pl_StdioFile::Members::~Members() -{ -} - Pl_StdioFile::Pl_StdioFile(char const* identifier, FILE* f) : Pipeline(identifier, 0), m(new Members(f)) @@ -23,6 +19,8 @@ Pl_StdioFile::Pl_StdioFile(char const* identifier, FILE* f) : Pl_StdioFile::~Pl_StdioFile() { + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer } void diff --git a/libqpdf/Pl_TIFFPredictor.cc b/libqpdf/Pl_TIFFPredictor.cc index 9230f895..fe788da7 100644 --- a/libqpdf/Pl_TIFFPredictor.cc +++ b/libqpdf/Pl_TIFFPredictor.cc @@ -45,10 +45,6 @@ Pl_TIFFPredictor::Pl_TIFFPredictor( memset(this->cur_row.get(), 0, this->bytes_per_row); } -Pl_TIFFPredictor::~Pl_TIFFPredictor() -{ -} - void Pl_TIFFPredictor::write(unsigned char* data, size_t len) { diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 6a571c8c..1864a1b4 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -230,10 +230,6 @@ QPDF::Members::Members() : { } -QPDF::Members::~Members() -{ -} - QPDF::QPDF() : m(new Members()) { diff --git a/libqpdf/QPDFAcroFormDocumentHelper.cc b/libqpdf/QPDFAcroFormDocumentHelper.cc index 8a01f556..435cd4f6 100644 --- a/libqpdf/QPDFAcroFormDocumentHelper.cc +++ b/libqpdf/QPDFAcroFormDocumentHelper.cc @@ -6,10 +6,6 @@ #include #include -QPDFAcroFormDocumentHelper::Members::~Members() -{ -} - QPDFAcroFormDocumentHelper::Members::Members() : cache_valid(false) { diff --git a/libqpdf/QPDFAnnotationObjectHelper.cc b/libqpdf/QPDFAnnotationObjectHelper.cc index 37ef7502..f22207de 100644 --- a/libqpdf/QPDFAnnotationObjectHelper.cc +++ b/libqpdf/QPDFAnnotationObjectHelper.cc @@ -6,14 +6,6 @@ #include #include -QPDFAnnotationObjectHelper::Members::~Members() -{ -} - -QPDFAnnotationObjectHelper::Members::Members() -{ -} - QPDFAnnotationObjectHelper::QPDFAnnotationObjectHelper(QPDFObjectHandle oh) : QPDFObjectHelper(oh) { diff --git a/libqpdf/QPDFEFStreamObjectHelper.cc b/libqpdf/QPDFEFStreamObjectHelper.cc index 6b3555bf..fe27a86e 100644 --- a/libqpdf/QPDFEFStreamObjectHelper.cc +++ b/libqpdf/QPDFEFStreamObjectHelper.cc @@ -12,10 +12,6 @@ QPDFEFStreamObjectHelper::QPDFEFStreamObjectHelper(QPDFObjectHandle oh) : { } -QPDFEFStreamObjectHelper::Members::Members() -{ -} - QPDFObjectHandle QPDFEFStreamObjectHelper::getParam(std::string const& pkey) { diff --git a/libqpdf/QPDFEmbeddedFileDocumentHelper.cc b/libqpdf/QPDFEmbeddedFileDocumentHelper.cc index 4e2bd3cd..826e0d87 100644 --- a/libqpdf/QPDFEmbeddedFileDocumentHelper.cc +++ b/libqpdf/QPDFEmbeddedFileDocumentHelper.cc @@ -47,10 +47,6 @@ QPDFEmbeddedFileDocumentHelper::QPDFEmbeddedFileDocumentHelper(QPDF& qpdf) : } } -QPDFEmbeddedFileDocumentHelper::Members::Members() -{ -} - bool QPDFEmbeddedFileDocumentHelper::hasEmbeddedFiles() const { diff --git a/libqpdf/QPDFFileSpecObjectHelper.cc b/libqpdf/QPDFFileSpecObjectHelper.cc index 7f7932e3..0c7653b6 100644 --- a/libqpdf/QPDFFileSpecObjectHelper.cc +++ b/libqpdf/QPDFFileSpecObjectHelper.cc @@ -19,10 +19,6 @@ QPDFFileSpecObjectHelper::QPDFFileSpecObjectHelper(QPDFObjectHandle oh) : } } -QPDFFileSpecObjectHelper::Members::Members() -{ -} - static std::vector name_keys = { "/UF", "/F", "/Unix", "/DOS", "/Mac"}; diff --git a/libqpdf/QPDFFormFieldObjectHelper.cc b/libqpdf/QPDFFormFieldObjectHelper.cc index 917e9339..a0a3ce5e 100644 --- a/libqpdf/QPDFFormFieldObjectHelper.cc +++ b/libqpdf/QPDFFormFieldObjectHelper.cc @@ -8,14 +8,6 @@ #include #include -QPDFFormFieldObjectHelper::Members::~Members() -{ -} - -QPDFFormFieldObjectHelper::Members::Members() -{ -} - QPDFFormFieldObjectHelper::QPDFFormFieldObjectHelper(QPDFObjectHandle oh) : QPDFObjectHelper(oh), m(new Members()) @@ -525,9 +517,7 @@ class ValueSetter: public QPDFObjectHandle::TokenFilter std::vector const& opt, double tf, QPDFObjectHandle::Rectangle const& bbox); - virtual ~ValueSetter() - { - } + virtual ~ValueSetter() = default; virtual void handleToken(QPDFTokenizer::Token const&); virtual void handleEOF(); void writeAppearance(); diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc index f714c5d2..b8d91b69 100644 --- a/libqpdf/QPDFJob.cc +++ b/libqpdf/QPDFJob.cc @@ -46,9 +46,7 @@ namespace size_t oi_min_height, size_t oi_min_area, QPDFObjectHandle& image); - virtual ~ImageOptimizer() - { - } + virtual ~ImageOptimizer() = default; virtual void provideStreamData(int objid, int generation, Pipeline* pipeline); std::shared_ptr @@ -66,9 +64,7 @@ namespace class DiscardContents: public QPDFObjectHandle::ParserCallbacks { public: - virtual ~DiscardContents() - { - } + virtual ~DiscardContents() = default; virtual void handleObject(QPDFObjectHandle) { @@ -103,10 +99,7 @@ namespace filename(filename) { } - virtual ~ProgressReporter() - { - } - + virtual ~ProgressReporter() = default; virtual void reportProgress(int); private: diff --git a/libqpdf/QPDFNameTreeObjectHelper.cc b/libqpdf/QPDFNameTreeObjectHelper.cc index 7ba7abab..19dac3e4 100644 --- a/libqpdf/QPDFNameTreeObjectHelper.cc +++ b/libqpdf/QPDFNameTreeObjectHelper.cc @@ -31,10 +31,6 @@ class NameTreeDetails: public NNTreeDetails static NameTreeDetails name_tree_details; -QPDFNameTreeObjectHelper::Members::~Members() -{ -} - QPDFNameTreeObjectHelper::Members::Members( QPDFObjectHandle& oh, QPDF* q, bool auto_repair) : impl(std::make_shared(name_tree_details, q, oh, auto_repair)) @@ -54,10 +50,6 @@ QPDFNameTreeObjectHelper::QPDFNameTreeObjectHelper(QPDFObjectHandle oh) : { } -QPDFNameTreeObjectHelper::~QPDFNameTreeObjectHelper() -{ -} - QPDFNameTreeObjectHelper QPDFNameTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair) { diff --git a/libqpdf/QPDFNumberTreeObjectHelper.cc b/libqpdf/QPDFNumberTreeObjectHelper.cc index 81cc0348..22b7f903 100644 --- a/libqpdf/QPDFNumberTreeObjectHelper.cc +++ b/libqpdf/QPDFNumberTreeObjectHelper.cc @@ -32,10 +32,6 @@ class NumberTreeDetails: public NNTreeDetails static NumberTreeDetails number_tree_details; -QPDFNumberTreeObjectHelper::Members::~Members() -{ -} - QPDFNumberTreeObjectHelper::Members::Members( QPDFObjectHandle& oh, QPDF* q, bool auto_repair) : impl(std::make_shared(number_tree_details, q, oh, auto_repair)) diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 59b4942d..d4d6ec96 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -41,6 +41,12 @@ QPDFObjectHandle::StreamDataProvider::StreamDataProvider(bool supports_retry) : { } +QPDFObjectHandle::StreamDataProvider::~StreamDataProvider() +{ + // Must be explicit and not inline -- see QPDF_DLL_CLASS in + // README-maintainer +} + void QPDFObjectHandle::StreamDataProvider::provideStreamData( int objid, int generation, Pipeline* pipeline) @@ -77,9 +83,7 @@ class CoalesceProvider: public QPDFObjectHandle::StreamDataProvider old_contents(old_contents) { } - virtual ~CoalesceProvider() - { - } + virtual ~CoalesceProvider() = default; virtual void provideStreamData(int objid, int generation, Pipeline* pipeline); diff --git a/libqpdf/QPDFOutlineDocumentHelper.cc b/libqpdf/QPDFOutlineDocumentHelper.cc index 3f30ebe0..97189a23 100644 --- a/libqpdf/QPDFOutlineDocumentHelper.cc +++ b/libqpdf/QPDFOutlineDocumentHelper.cc @@ -2,14 +2,6 @@ #include -QPDFOutlineDocumentHelper::Members::~Members() -{ -} - -QPDFOutlineDocumentHelper::Members::Members() -{ -} - QPDFOutlineDocumentHelper::QPDFOutlineDocumentHelper(QPDF& qpdf) : QPDFDocumentHelper(qpdf), m(new Members()) @@ -36,10 +28,6 @@ QPDFOutlineDocumentHelper::QPDFOutlineDocumentHelper(QPDF& qpdf) : } } -QPDFOutlineDocumentHelper::~QPDFOutlineDocumentHelper() -{ -} - bool QPDFOutlineDocumentHelper::hasOutlines() { diff --git a/libqpdf/QPDFOutlineObjectHelper.cc b/libqpdf/QPDFOutlineObjectHelper.cc index 0c2a30b4..d30cd7e7 100644 --- a/libqpdf/QPDFOutlineObjectHelper.cc +++ b/libqpdf/QPDFOutlineObjectHelper.cc @@ -3,10 +3,6 @@ #include #include -QPDFOutlineObjectHelper::Members::~Members() -{ -} - QPDFOutlineObjectHelper::Members::Members(QPDFOutlineDocumentHelper& dh) : dh(dh) { diff --git a/libqpdf/QPDFPageDocumentHelper.cc b/libqpdf/QPDFPageDocumentHelper.cc index ecfd3713..61eba8c3 100644 --- a/libqpdf/QPDFPageDocumentHelper.cc +++ b/libqpdf/QPDFPageDocumentHelper.cc @@ -4,14 +4,6 @@ #include #include -QPDFPageDocumentHelper::Members::~Members() -{ -} - -QPDFPageDocumentHelper::Members::Members() -{ -} - QPDFPageDocumentHelper::QPDFPageDocumentHelper(QPDF& qpdf) : QPDFDocumentHelper(qpdf) { diff --git a/libqpdf/QPDFPageLabelDocumentHelper.cc b/libqpdf/QPDFPageLabelDocumentHelper.cc index 05f080f0..5b2d4358 100644 --- a/libqpdf/QPDFPageLabelDocumentHelper.cc +++ b/libqpdf/QPDFPageLabelDocumentHelper.cc @@ -2,14 +2,6 @@ #include -QPDFPageLabelDocumentHelper::Members::~Members() -{ -} - -QPDFPageLabelDocumentHelper::Members::Members() -{ -} - QPDFPageLabelDocumentHelper::QPDFPageLabelDocumentHelper(QPDF& qpdf) : QPDFDocumentHelper(qpdf), m(new Members()) diff --git a/libqpdf/QPDFPageObjectHelper.cc b/libqpdf/QPDFPageObjectHelper.cc index 5ad67dea..c64916b2 100644 --- a/libqpdf/QPDFPageObjectHelper.cc +++ b/libqpdf/QPDFPageObjectHelper.cc @@ -18,9 +18,7 @@ class ContentProvider: public QPDFObjectHandle::StreamDataProvider from_page(from_page) { } - virtual ~ContentProvider() - { - } + virtual ~ContentProvider() = default; virtual void provideStreamData(int objid, int generation, Pipeline* pipeline); @@ -45,9 +43,7 @@ class InlineImageTracker: public QPDFObjectHandle::TokenFilter { public: InlineImageTracker(QPDF*, size_t min_size, QPDFObjectHandle resources); - virtual ~InlineImageTracker() - { - } + virtual ~InlineImageTracker() = default; virtual void handleToken(QPDFTokenizer::Token const&); QPDFObjectHandle convertIIDict(QPDFObjectHandle odict); @@ -230,14 +226,6 @@ InlineImageTracker::handleToken(QPDFTokenizer::Token const& token) } } -QPDFPageObjectHelper::Members::~Members() -{ -} - -QPDFPageObjectHelper::Members::Members() -{ -} - QPDFPageObjectHelper::QPDFPageObjectHelper(QPDFObjectHandle oh) : QPDFObjectHelper(oh) { diff --git a/libqpdf/QPDFSystemError.cc b/libqpdf/QPDFSystemError.cc index d300a00b..8d129bad 100644 --- a/libqpdf/QPDFSystemError.cc +++ b/libqpdf/QPDFSystemError.cc @@ -11,10 +11,6 @@ QPDFSystemError::QPDFSystemError( { } -QPDFSystemError::~QPDFSystemError() noexcept -{ -} - std::string QPDFSystemError::createWhat(std::string const& description, int system_errno) { diff --git a/libqpdf/QPDFTokenizer.cc b/libqpdf/QPDFTokenizer.cc index 0486fbc9..972b3ab9 100644 --- a/libqpdf/QPDFTokenizer.cc +++ b/libqpdf/QPDFTokenizer.cc @@ -29,9 +29,7 @@ class QPDFWordTokenFinder: public InputSource::Finder str(str) { } - virtual ~QPDFWordTokenFinder() - { - } + virtual ~QPDFWordTokenFinder() = default; virtual bool check(); private: @@ -96,10 +94,6 @@ QPDFTokenizer::Members::reset() last_char_was_cr = false; } -QPDFTokenizer::Members::~Members() -{ -} - QPDFTokenizer::Token::Token(token_type_e type, std::string const& value) : type(type), value(value), diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index ef7c33ed..9f3eacbe 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -100,10 +100,6 @@ QPDFWriter::QPDFWriter( setOutputFile(description, file, close_file); } -QPDFWriter::~QPDFWriter() -{ -} - void QPDFWriter::setOutputFilename(char const* filename) { diff --git a/libqpdf/QPDF_Array.cc b/libqpdf/QPDF_Array.cc index 1026e263..46cc4893 100644 --- a/libqpdf/QPDF_Array.cc +++ b/libqpdf/QPDF_Array.cc @@ -14,10 +14,6 @@ QPDF_Array::QPDF_Array(SparseOHArray const& items) : { } -QPDF_Array::~QPDF_Array() -{ -} - void QPDF_Array::releaseResolved() { diff --git a/libqpdf/QPDF_Bool.cc b/libqpdf/QPDF_Bool.cc index 63d44adb..e7cf7105 100644 --- a/libqpdf/QPDF_Bool.cc +++ b/libqpdf/QPDF_Bool.cc @@ -5,10 +5,6 @@ QPDF_Bool::QPDF_Bool(bool val) : { } -QPDF_Bool::~QPDF_Bool() -{ -} - std::string QPDF_Bool::unparse() { diff --git a/libqpdf/QPDF_Dictionary.cc b/libqpdf/QPDF_Dictionary.cc index 39708fe7..599f7224 100644 --- a/libqpdf/QPDF_Dictionary.cc +++ b/libqpdf/QPDF_Dictionary.cc @@ -9,10 +9,6 @@ QPDF_Dictionary::QPDF_Dictionary( { } -QPDF_Dictionary::~QPDF_Dictionary() -{ -} - void QPDF_Dictionary::releaseResolved() { diff --git a/libqpdf/QPDF_InlineImage.cc b/libqpdf/QPDF_InlineImage.cc index 9769630c..c9e65e63 100644 --- a/libqpdf/QPDF_InlineImage.cc +++ b/libqpdf/QPDF_InlineImage.cc @@ -7,10 +7,6 @@ QPDF_InlineImage::QPDF_InlineImage(std::string const& val) : { } -QPDF_InlineImage::~QPDF_InlineImage() -{ -} - std::string QPDF_InlineImage::unparse() { diff --git a/libqpdf/QPDF_Integer.cc b/libqpdf/QPDF_Integer.cc index d0356dad..9401b3f9 100644 --- a/libqpdf/QPDF_Integer.cc +++ b/libqpdf/QPDF_Integer.cc @@ -7,10 +7,6 @@ QPDF_Integer::QPDF_Integer(long long val) : { } -QPDF_Integer::~QPDF_Integer() -{ -} - std::string QPDF_Integer::unparse() { diff --git a/libqpdf/QPDF_Name.cc b/libqpdf/QPDF_Name.cc index 85ca3059..2e0dde97 100644 --- a/libqpdf/QPDF_Name.cc +++ b/libqpdf/QPDF_Name.cc @@ -9,10 +9,6 @@ QPDF_Name::QPDF_Name(std::string const& name) : { } -QPDF_Name::~QPDF_Name() -{ -} - std::string QPDF_Name::normalizeName(std::string const& name) { diff --git a/libqpdf/QPDF_Null.cc b/libqpdf/QPDF_Null.cc index e4193c6c..0baff460 100644 --- a/libqpdf/QPDF_Null.cc +++ b/libqpdf/QPDF_Null.cc @@ -1,9 +1,5 @@ #include -QPDF_Null::~QPDF_Null() -{ -} - std::string QPDF_Null::unparse() { diff --git a/libqpdf/QPDF_Operator.cc b/libqpdf/QPDF_Operator.cc index b61d47b1..a8ccc970 100644 --- a/libqpdf/QPDF_Operator.cc +++ b/libqpdf/QPDF_Operator.cc @@ -7,10 +7,6 @@ QPDF_Operator::QPDF_Operator(std::string const& val) : { } -QPDF_Operator::~QPDF_Operator() -{ -} - std::string QPDF_Operator::unparse() { diff --git a/libqpdf/QPDF_Real.cc b/libqpdf/QPDF_Real.cc index 345f30b6..0af881eb 100644 --- a/libqpdf/QPDF_Real.cc +++ b/libqpdf/QPDF_Real.cc @@ -13,10 +13,6 @@ QPDF_Real::QPDF_Real( { } -QPDF_Real::~QPDF_Real() -{ -} - std::string QPDF_Real::unparse() { diff --git a/libqpdf/QPDF_Reserved.cc b/libqpdf/QPDF_Reserved.cc index 5a1fc7ad..94bc584f 100644 --- a/libqpdf/QPDF_Reserved.cc +++ b/libqpdf/QPDF_Reserved.cc @@ -2,10 +2,6 @@ #include -QPDF_Reserved::~QPDF_Reserved() -{ -} - std::string QPDF_Reserved::unparse() { diff --git a/libqpdf/QPDF_Stream.cc b/libqpdf/QPDF_Stream.cc index 219f159a..fa64fb1f 100644 --- a/libqpdf/QPDF_Stream.cc +++ b/libqpdf/QPDF_Stream.cc @@ -99,10 +99,6 @@ QPDF_Stream::QPDF_Stream( setStreamDescription(); } -QPDF_Stream::~QPDF_Stream() -{ -} - void QPDF_Stream::registerStreamFilter( std::string const& filter_name, diff --git a/libqpdf/QPDF_String.cc b/libqpdf/QPDF_String.cc index 7d7ee84d..89ddc498 100644 --- a/libqpdf/QPDF_String.cc +++ b/libqpdf/QPDF_String.cc @@ -26,10 +26,6 @@ QPDF_String::QPDF_String(std::string const& val) : { } -QPDF_String::~QPDF_String() -{ -} - QPDF_String* QPDF_String::new_utf16(std::string const& utf8_val) { diff --git a/libqpdf/SecureRandomDataProvider.cc b/libqpdf/SecureRandomDataProvider.cc index 17af08ba..f8a342bd 100644 --- a/libqpdf/SecureRandomDataProvider.cc +++ b/libqpdf/SecureRandomDataProvider.cc @@ -12,14 +12,6 @@ # endif #endif -SecureRandomDataProvider::SecureRandomDataProvider() -{ -} - -SecureRandomDataProvider::~SecureRandomDataProvider() -{ -} - #ifdef SKIP_OS_SECURE_RANDOM void diff --git a/libqpdf/qpdf-c.cc b/libqpdf/qpdf-c.cc index 46c553eb..bca66d0a 100644 --- a/libqpdf/qpdf-c.cc +++ b/libqpdf/qpdf-c.cc @@ -24,7 +24,7 @@ struct _qpdf_error struct _qpdf_data { _qpdf_data(); - ~_qpdf_data(); + ~_qpdf_data() = default; std::shared_ptr qpdf; std::shared_ptr qpdf_writer; @@ -60,10 +60,6 @@ _qpdf_data::_qpdf_data() : { } -_qpdf_data::~_qpdf_data() -{ -} - class ProgressReporter: public QPDFWriter::ProgressReporter { public: diff --git a/libqpdf/qpdf/AES_PDF_native.hh b/libqpdf/qpdf/AES_PDF_native.hh index 186ebbae..0b932038 100644 --- a/libqpdf/qpdf/AES_PDF_native.hh +++ b/libqpdf/qpdf/AES_PDF_native.hh @@ -15,7 +15,7 @@ class AES_PDF_native size_t key_bytes, bool cbc_mode, unsigned char* cbc_block); - ~AES_PDF_native(); + ~AES_PDF_native() = default; void update(unsigned char* in_data, unsigned char* out_data); diff --git a/libqpdf/qpdf/ContentNormalizer.hh b/libqpdf/qpdf/ContentNormalizer.hh index 4d976d27..ba1063e0 100644 --- a/libqpdf/qpdf/ContentNormalizer.hh +++ b/libqpdf/qpdf/ContentNormalizer.hh @@ -7,7 +7,7 @@ class ContentNormalizer: public QPDFObjectHandle::TokenFilter { public: ContentNormalizer(); - virtual ~ContentNormalizer(); + virtual ~ContentNormalizer() = default; virtual void handleToken(QPDFTokenizer::Token const&); bool anyBadTokens() const; diff --git a/libqpdf/qpdf/CryptoRandomDataProvider.hh b/libqpdf/qpdf/CryptoRandomDataProvider.hh index 006f27c2..89859e65 100644 --- a/libqpdf/qpdf/CryptoRandomDataProvider.hh +++ b/libqpdf/qpdf/CryptoRandomDataProvider.hh @@ -6,8 +6,8 @@ class CryptoRandomDataProvider: public RandomDataProvider { public: - CryptoRandomDataProvider(); - virtual ~CryptoRandomDataProvider(); + CryptoRandomDataProvider() = default; + virtual ~CryptoRandomDataProvider() = default; virtual void provideRandomData(unsigned char* data, size_t len); static RandomDataProvider* getInstance(); }; diff --git a/libqpdf/qpdf/InsecureRandomDataProvider.hh b/libqpdf/qpdf/InsecureRandomDataProvider.hh index 5cdaabb2..47a81afe 100644 --- a/libqpdf/qpdf/InsecureRandomDataProvider.hh +++ b/libqpdf/qpdf/InsecureRandomDataProvider.hh @@ -7,7 +7,7 @@ class InsecureRandomDataProvider: public RandomDataProvider { public: InsecureRandomDataProvider(); - virtual ~InsecureRandomDataProvider(); + virtual ~InsecureRandomDataProvider() = default; virtual void provideRandomData(unsigned char* data, size_t len); static RandomDataProvider* getInstance(); diff --git a/libqpdf/qpdf/JSONHandler.hh b/libqpdf/qpdf/JSONHandler.hh index 80f82175..9a53e028 100644 --- a/libqpdf/qpdf/JSONHandler.hh +++ b/libqpdf/qpdf/JSONHandler.hh @@ -104,7 +104,7 @@ class JSONHandler ~Members() = default; private: - Members(); + Members() = default; Members(Members const&) = delete; Handlers h; diff --git a/libqpdf/qpdf/OffsetInputSource.hh b/libqpdf/qpdf/OffsetInputSource.hh index 4af25dbd..d8b08145 100644 --- a/libqpdf/qpdf/OffsetInputSource.hh +++ b/libqpdf/qpdf/OffsetInputSource.hh @@ -11,7 +11,7 @@ class OffsetInputSource: public InputSource public: OffsetInputSource( std::shared_ptr, qpdf_offset_t global_offset); - virtual ~OffsetInputSource(); + virtual ~OffsetInputSource() = default; virtual qpdf_offset_t findAndSkipNextEOL(); virtual std::string const& getName() const; diff --git a/libqpdf/qpdf/Pl_AES_PDF.hh b/libqpdf/qpdf/Pl_AES_PDF.hh index 6044902e..036842dd 100644 --- a/libqpdf/qpdf/Pl_AES_PDF.hh +++ b/libqpdf/qpdf/Pl_AES_PDF.hh @@ -18,7 +18,7 @@ class Pl_AES_PDF: public Pipeline bool encrypt, unsigned char const* key, size_t key_bytes); - virtual ~Pl_AES_PDF(); + virtual ~Pl_AES_PDF() = default; virtual void write(unsigned char* data, size_t len); virtual void finish(); diff --git a/libqpdf/qpdf/Pl_ASCII85Decoder.hh b/libqpdf/qpdf/Pl_ASCII85Decoder.hh index 966622ad..b359e16c 100644 --- a/libqpdf/qpdf/Pl_ASCII85Decoder.hh +++ b/libqpdf/qpdf/Pl_ASCII85Decoder.hh @@ -7,7 +7,7 @@ class Pl_ASCII85Decoder: public Pipeline { public: Pl_ASCII85Decoder(char const* identifier, Pipeline* next); - virtual ~Pl_ASCII85Decoder(); + virtual ~Pl_ASCII85Decoder() = default; virtual void write(unsigned char* buf, size_t len); virtual void finish(); diff --git a/libqpdf/qpdf/Pl_ASCIIHexDecoder.hh b/libqpdf/qpdf/Pl_ASCIIHexDecoder.hh index 2aa6a282..a385cce3 100644 --- a/libqpdf/qpdf/Pl_ASCIIHexDecoder.hh +++ b/libqpdf/qpdf/Pl_ASCIIHexDecoder.hh @@ -7,7 +7,7 @@ class Pl_ASCIIHexDecoder: public Pipeline { public: Pl_ASCIIHexDecoder(char const* identifier, Pipeline* next); - virtual ~Pl_ASCIIHexDecoder(); + virtual ~Pl_ASCIIHexDecoder() = default; virtual void write(unsigned char* buf, size_t len); virtual void finish(); diff --git a/libqpdf/qpdf/Pl_LZWDecoder.hh b/libqpdf/qpdf/Pl_LZWDecoder.hh index bc42220a..e157ee5b 100644 --- a/libqpdf/qpdf/Pl_LZWDecoder.hh +++ b/libqpdf/qpdf/Pl_LZWDecoder.hh @@ -11,7 +11,7 @@ class Pl_LZWDecoder: public Pipeline public: Pl_LZWDecoder( char const* identifier, Pipeline* next, bool early_code_change); - virtual ~Pl_LZWDecoder(); + virtual ~Pl_LZWDecoder() = default; virtual void write(unsigned char* buf, size_t len); virtual void finish(); diff --git a/libqpdf/qpdf/Pl_MD5.hh b/libqpdf/qpdf/Pl_MD5.hh index 18ce68c8..bbefba0e 100644 --- a/libqpdf/qpdf/Pl_MD5.hh +++ b/libqpdf/qpdf/Pl_MD5.hh @@ -16,7 +16,7 @@ class Pl_MD5: public Pipeline { public: Pl_MD5(char const* identifier, Pipeline* next); - virtual ~Pl_MD5(); + virtual ~Pl_MD5() = default; virtual void write(unsigned char*, size_t); virtual void finish(); std::string getHexDigest(); diff --git a/libqpdf/qpdf/Pl_PNGFilter.hh b/libqpdf/qpdf/Pl_PNGFilter.hh index ff4b6bd2..27986c55 100644 --- a/libqpdf/qpdf/Pl_PNGFilter.hh +++ b/libqpdf/qpdf/Pl_PNGFilter.hh @@ -22,7 +22,7 @@ class Pl_PNGFilter: public Pipeline unsigned int columns, unsigned int samples_per_pixel = 1, unsigned int bits_per_sample = 8); - virtual ~Pl_PNGFilter(); + virtual ~Pl_PNGFilter() = default; virtual void write(unsigned char* data, size_t len); virtual void finish(); diff --git a/libqpdf/qpdf/Pl_RC4.hh b/libqpdf/qpdf/Pl_RC4.hh index df5e1587..b5fc508d 100644 --- a/libqpdf/qpdf/Pl_RC4.hh +++ b/libqpdf/qpdf/Pl_RC4.hh @@ -17,7 +17,7 @@ class Pl_RC4: public Pipeline unsigned char const* key_data, int key_len = -1, size_t out_bufsize = def_bufsize); - virtual ~Pl_RC4(); + virtual ~Pl_RC4() = default; virtual void write(unsigned char* data, size_t len); virtual void finish(); diff --git a/libqpdf/qpdf/Pl_SHA2.hh b/libqpdf/qpdf/Pl_SHA2.hh index c857ff94..ba782bcf 100644 --- a/libqpdf/qpdf/Pl_SHA2.hh +++ b/libqpdf/qpdf/Pl_SHA2.hh @@ -21,7 +21,7 @@ class Pl_SHA2: public Pipeline { public: Pl_SHA2(int bits = 0, Pipeline* next = 0); - virtual ~Pl_SHA2(); + virtual ~Pl_SHA2() = default; virtual void write(unsigned char*, size_t); virtual void finish(); void resetBits(int bits); diff --git a/libqpdf/qpdf/Pl_TIFFPredictor.hh b/libqpdf/qpdf/Pl_TIFFPredictor.hh index e0feda23..22c9322b 100644 --- a/libqpdf/qpdf/Pl_TIFFPredictor.hh +++ b/libqpdf/qpdf/Pl_TIFFPredictor.hh @@ -18,7 +18,7 @@ class Pl_TIFFPredictor: public Pipeline unsigned int columns, unsigned int samples_per_pixel = 1, unsigned int bits_per_sample = 8); - virtual ~Pl_TIFFPredictor(); + virtual ~Pl_TIFFPredictor() = default; virtual void write(unsigned char* data, size_t len); virtual void finish(); diff --git a/libqpdf/qpdf/QPDF_Array.hh b/libqpdf/qpdf/QPDF_Array.hh index 78e268fa..eb310b8e 100644 --- a/libqpdf/qpdf/QPDF_Array.hh +++ b/libqpdf/qpdf/QPDF_Array.hh @@ -12,7 +12,7 @@ class QPDF_Array: public QPDFObject public: QPDF_Array(std::vector const& items); QPDF_Array(SparseOHArray const& items); - virtual ~QPDF_Array(); + virtual ~QPDF_Array() = default; virtual std::string unparse(); virtual JSON getJSON(); virtual QPDFObject::object_type_e getTypeCode() const; diff --git a/libqpdf/qpdf/QPDF_Bool.hh b/libqpdf/qpdf/QPDF_Bool.hh index 5da6e87c..87f44251 100644 --- a/libqpdf/qpdf/QPDF_Bool.hh +++ b/libqpdf/qpdf/QPDF_Bool.hh @@ -7,7 +7,7 @@ class QPDF_Bool: public QPDFObject { public: QPDF_Bool(bool val); - virtual ~QPDF_Bool(); + virtual ~QPDF_Bool() = default; virtual std::string unparse(); virtual JSON getJSON(); virtual QPDFObject::object_type_e getTypeCode() const; diff --git a/libqpdf/qpdf/QPDF_Dictionary.hh b/libqpdf/qpdf/QPDF_Dictionary.hh index 4b8047df..8626d59b 100644 --- a/libqpdf/qpdf/QPDF_Dictionary.hh +++ b/libqpdf/qpdf/QPDF_Dictionary.hh @@ -12,7 +12,7 @@ class QPDF_Dictionary: public QPDFObject { public: QPDF_Dictionary(std::map const& items); - virtual ~QPDF_Dictionary(); + virtual ~QPDF_Dictionary() = default; virtual std::string unparse(); virtual JSON getJSON(); virtual QPDFObject::object_type_e getTypeCode() const; diff --git a/libqpdf/qpdf/QPDF_InlineImage.hh b/libqpdf/qpdf/QPDF_InlineImage.hh index bc544c39..ee79568b 100644 --- a/libqpdf/qpdf/QPDF_InlineImage.hh +++ b/libqpdf/qpdf/QPDF_InlineImage.hh @@ -7,7 +7,7 @@ class QPDF_InlineImage: public QPDFObject { public: QPDF_InlineImage(std::string const& val); - virtual ~QPDF_InlineImage(); + virtual ~QPDF_InlineImage() = default; virtual std::string unparse(); virtual JSON getJSON(); virtual QPDFObject::object_type_e getTypeCode() const; diff --git a/libqpdf/qpdf/QPDF_Integer.hh b/libqpdf/qpdf/QPDF_Integer.hh index 35e11a94..066629b6 100644 --- a/libqpdf/qpdf/QPDF_Integer.hh +++ b/libqpdf/qpdf/QPDF_Integer.hh @@ -7,7 +7,7 @@ class QPDF_Integer: public QPDFObject { public: QPDF_Integer(long long val); - virtual ~QPDF_Integer(); + virtual ~QPDF_Integer() = default; virtual std::string unparse(); virtual JSON getJSON(); virtual QPDFObject::object_type_e getTypeCode() const; diff --git a/libqpdf/qpdf/QPDF_Name.hh b/libqpdf/qpdf/QPDF_Name.hh index f87ca460..102cf4a3 100644 --- a/libqpdf/qpdf/QPDF_Name.hh +++ b/libqpdf/qpdf/QPDF_Name.hh @@ -7,7 +7,7 @@ class QPDF_Name: public QPDFObject { public: QPDF_Name(std::string const& name); - virtual ~QPDF_Name(); + virtual ~QPDF_Name() = default; virtual std::string unparse(); virtual JSON getJSON(); virtual QPDFObject::object_type_e getTypeCode() const; diff --git a/libqpdf/qpdf/QPDF_Null.hh b/libqpdf/qpdf/QPDF_Null.hh index 667c72f9..3ed6ddef 100644 --- a/libqpdf/qpdf/QPDF_Null.hh +++ b/libqpdf/qpdf/QPDF_Null.hh @@ -6,7 +6,7 @@ class QPDF_Null: public QPDFObject { public: - virtual ~QPDF_Null(); + virtual ~QPDF_Null() = default; virtual std::string unparse(); virtual JSON getJSON(); virtual QPDFObject::object_type_e getTypeCode() const; diff --git a/libqpdf/qpdf/QPDF_Operator.hh b/libqpdf/qpdf/QPDF_Operator.hh index 4b3787a0..62a0e47b 100644 --- a/libqpdf/qpdf/QPDF_Operator.hh +++ b/libqpdf/qpdf/QPDF_Operator.hh @@ -7,7 +7,7 @@ class QPDF_Operator: public QPDFObject { public: QPDF_Operator(std::string const& val); - virtual ~QPDF_Operator(); + virtual ~QPDF_Operator() = default; virtual std::string unparse(); virtual JSON getJSON(); virtual QPDFObject::object_type_e getTypeCode() const; diff --git a/libqpdf/qpdf/QPDF_Real.hh b/libqpdf/qpdf/QPDF_Real.hh index 793990c0..f12d6b3a 100644 --- a/libqpdf/qpdf/QPDF_Real.hh +++ b/libqpdf/qpdf/QPDF_Real.hh @@ -8,7 +8,7 @@ class QPDF_Real: public QPDFObject public: QPDF_Real(std::string const& val); QPDF_Real(double value, int decimal_places, bool trim_trailing_zeroes); - virtual ~QPDF_Real(); + virtual ~QPDF_Real() = default; virtual std::string unparse(); virtual JSON getJSON(); virtual QPDFObject::object_type_e getTypeCode() const; diff --git a/libqpdf/qpdf/QPDF_Reserved.hh b/libqpdf/qpdf/QPDF_Reserved.hh index 71adbf3a..e085f2d3 100644 --- a/libqpdf/qpdf/QPDF_Reserved.hh +++ b/libqpdf/qpdf/QPDF_Reserved.hh @@ -6,7 +6,7 @@ class QPDF_Reserved: public QPDFObject { public: - virtual ~QPDF_Reserved(); + virtual ~QPDF_Reserved() = default; virtual std::string unparse(); virtual JSON getJSON(); virtual QPDFObject::object_type_e getTypeCode() const; diff --git a/libqpdf/qpdf/QPDF_Stream.hh b/libqpdf/qpdf/QPDF_Stream.hh index 4dc92236..4df83d29 100644 --- a/libqpdf/qpdf/QPDF_Stream.hh +++ b/libqpdf/qpdf/QPDF_Stream.hh @@ -23,7 +23,7 @@ class QPDF_Stream: public QPDFObject QPDFObjectHandle stream_dict, qpdf_offset_t offset, size_t length); - virtual ~QPDF_Stream(); + virtual ~QPDF_Stream() = default; virtual std::string unparse(); virtual JSON getJSON(); virtual QPDFObject::object_type_e getTypeCode() const; diff --git a/libqpdf/qpdf/QPDF_String.hh b/libqpdf/qpdf/QPDF_String.hh index 1c7bb639..30be0c17 100644 --- a/libqpdf/qpdf/QPDF_String.hh +++ b/libqpdf/qpdf/QPDF_String.hh @@ -10,7 +10,7 @@ class QPDF_String: public QPDFObject public: QPDF_String(std::string const& val); static QPDF_String* new_utf16(std::string const& utf8_val); - virtual ~QPDF_String(); + virtual ~QPDF_String() = default; virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; diff --git a/libqpdf/qpdf/SecureRandomDataProvider.hh b/libqpdf/qpdf/SecureRandomDataProvider.hh index c24eeddd..d701a905 100644 --- a/libqpdf/qpdf/SecureRandomDataProvider.hh +++ b/libqpdf/qpdf/SecureRandomDataProvider.hh @@ -6,8 +6,8 @@ class SecureRandomDataProvider: public RandomDataProvider { public: - SecureRandomDataProvider(); - virtual ~SecureRandomDataProvider(); + SecureRandomDataProvider() = default; + virtual ~SecureRandomDataProvider() = default; virtual void provideRandomData(unsigned char* data, size_t len); static RandomDataProvider* getInstance(); }; diff --git a/libtests/dct_compress.cc b/libtests/dct_compress.cc index 446d4d0a..ad8710b1 100644 --- a/libtests/dct_compress.cc +++ b/libtests/dct_compress.cc @@ -22,9 +22,7 @@ class Callback: public Pl_DCT::CompressConfig called(false) { } - virtual ~Callback() - { - } + virtual ~Callback() = default; virtual void apply(jpeg_compress_struct*); bool called; }; diff --git a/libtests/input_source.cc b/libtests/input_source.cc index ad7270cc..1b85beda 100644 --- a/libtests/input_source.cc +++ b/libtests/input_source.cc @@ -24,9 +24,7 @@ class Finder: public InputSource::Finder after(after) { } - virtual ~Finder() - { - } + virtual ~Finder() = default; virtual bool check(); private: diff --git a/libtests/random.cc b/libtests/random.cc index 2148111c..ad7d105d 100644 --- a/libtests/random.cc +++ b/libtests/random.cc @@ -7,12 +7,8 @@ class BogusRandomDataProvider: public RandomDataProvider { public: - virtual ~BogusRandomDataProvider() - { - } - BogusRandomDataProvider() - { - } + virtual ~BogusRandomDataProvider() = default; + BogusRandomDataProvider() = default; virtual void provideRandomData(unsigned char* data, size_t len) { diff --git a/qpdf/test_driver.cc b/qpdf/test_driver.cc index 6e48bb35..bacaca74 100644 --- a/qpdf/test_driver.cc +++ b/qpdf/test_driver.cc @@ -55,9 +55,7 @@ class Provider: public QPDFObjectHandle::StreamDataProvider bad_length(false) { } - virtual ~Provider() - { - } + virtual ~Provider() = default; virtual void provideStreamData(int objid, int generation, Pipeline* p) { @@ -82,10 +80,7 @@ class Provider: public QPDFObjectHandle::StreamDataProvider class ParserCallbacks: public QPDFObjectHandle::ParserCallbacks { public: - virtual ~ParserCallbacks() - { - } - + virtual ~ParserCallbacks() = default; virtual void contentSize(size_t size); virtual void handleObject(QPDFObjectHandle, size_t, size_t); virtual void handleEOF(); @@ -125,12 +120,8 @@ ParserCallbacks::handleEOF() class TokenFilter: public QPDFObjectHandle::TokenFilter { public: - TokenFilter() - { - } - virtual ~TokenFilter() - { - } + TokenFilter() = default; + virtual ~TokenFilter() = default; virtual void handleToken(QPDFTokenizer::Token const& t) { diff --git a/qpdf/test_large_file.cc b/qpdf/test_large_file.cc index 24fc9e11..df442882 100644 --- a/qpdf/test_large_file.cc +++ b/qpdf/test_large_file.cc @@ -66,7 +66,7 @@ class ImageChecker: public Pipeline { public: ImageChecker(size_t n); - virtual ~ImageChecker(); + virtual ~ImageChecker() = default; virtual void write(unsigned char* data, size_t len); virtual void finish(); @@ -84,10 +84,6 @@ ImageChecker::ImageChecker(size_t n) : { } -ImageChecker::~ImageChecker() -{ -} - void ImageChecker::write(unsigned char* data, size_t len) { @@ -114,7 +110,7 @@ class ImageProvider: public QPDFObjectHandle::StreamDataProvider { public: ImageProvider(size_t n); - virtual ~ImageProvider(); + virtual ~ImageProvider() = default; virtual void provideStreamData(int objid, int generation, Pipeline* pipeline); @@ -127,10 +123,6 @@ ImageProvider::ImageProvider(size_t n) : { } -ImageProvider::~ImageProvider() -{ -} - void ImageProvider::provideStreamData(int objid, int generation, Pipeline* pipeline) { diff --git a/qpdf/test_tokenizer.cc b/qpdf/test_tokenizer.cc index 5b99888c..c3cda112 100644 --- a/qpdf/test_tokenizer.cc +++ b/qpdf/test_tokenizer.cc @@ -30,9 +30,7 @@ class Finder: public InputSource::Finder str(str) { } - virtual ~Finder() - { - } + virtual ~Finder() = default; virtual bool check(); private: