Commit cdd0b4fb7d48b32686d56364cf170569bdb0149d

Authored by Jay Berkenbilt
1 parent 2a7d2b63

Use = default and = delete where possible in classes

Showing 144 changed files with 196 additions and 591 deletions

Too many changes.

To preserve performance only 100 of 144 files are displayed.

README-maintainer
... ... @@ -165,6 +165,18 @@ CODING RULES
165 165 or QPDFDocumentHelper subclasses since there's no reason to use
166 166 dynamic_cast with those.
167 167  
  168 + IMPORTANT NOTE ABOUT QPDF_DLL_CLASS: On mingw, the vtable for a
  169 + class with some virtual methods and no pure virtual methods seems
  170 + often (always?) not to be generated if the destructor is inline or
  171 + declared with `= default`. Therefore, for any class that is intended
  172 + to be used as a base class and doesn't contain any pure virtual
  173 + methods, you must declare the destructor in the header without
  174 + `= default` and provide a non-inline implementation in the source
  175 + file. Add this comment to the implementation:
  176 +
  177 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  178 + // README-maintainer
  179 +
168 180 * Put private member variables in std::shared_ptr<Members> for all
169 181 public classes. Remember to use QPDF_DLL on ~Members(). Exception:
170 182 indirection through std::shared_ptr<Members> is expensive, so don't
... ...
... ... @@ -483,14 +483,10 @@ Comments appear in the code prefixed by &quot;ABI&quot;
483 483 * Switch default --json to latest
484 484 * See where anonymous namespaces can be used to keep things private to
485 485 a source file. Search for `(class|struct)` in **/*.cc.
486   -* See if we can use constructor delegation instead of init() in
487   - classes with overloaded constructors.
488 486 * After removing legacy QPDFNameTreeObjectHelper and
489 487 QPDFNumberTreeObjectHelper constructors, NNTreeImpl can switch to
490 488 having a QPDF reference and assume that the reference is always
491 489 valid.
492   -* Use `= delete` and `= default` for constructors and destructors
493   - where possible
494 490 * Having QPDFObjectHandle setters return Class& to allow for
495 491 use of fluent interfaces. This includes array and dictionary
496 492 mutators.
... ...
examples/pdf-count-strings.cc
... ... @@ -32,9 +32,7 @@ class StringCounter: public QPDFObjectHandle::TokenFilter
32 32 count(0)
33 33 {
34 34 }
35   - virtual ~StringCounter()
36   - {
37   - }
  35 + virtual ~StringCounter() = default;
38 36 virtual void handleToken(QPDFTokenizer::Token const&);
39 37 virtual void handleEOF();
40 38 int getCount() const;
... ...
examples/pdf-create.cc
... ... @@ -28,7 +28,7 @@ class ImageProvider: public QPDFObjectHandle::StreamDataProvider
28 28 {
29 29 public:
30 30 ImageProvider(std::string const& color_space, std::string const& filter);
31   - virtual ~ImageProvider();
  31 + virtual ~ImageProvider() = default;
32 32 virtual void
33 33 provideStreamData(int objid, int generation, Pipeline* pipeline);
34 34 size_t getWidth() const;
... ... @@ -80,10 +80,6 @@ ImageProvider::ImageProvider(
80 80 }
81 81 }
82 82  
83   -ImageProvider::~ImageProvider()
84   -{
85   -}
86   -
87 83 size_t
88 84 ImageProvider::getWidth() const
89 85 {
... ...
examples/pdf-filter-tokens.cc
... ... @@ -35,9 +35,7 @@ usage()
35 35 class StringReverser: public QPDFObjectHandle::TokenFilter
36 36 {
37 37 public:
38   - virtual ~StringReverser()
39   - {
40   - }
  38 + virtual ~StringReverser() = default;
41 39 virtual void handleToken(QPDFTokenizer::Token const&);
42 40 };
43 41  
... ... @@ -70,9 +68,7 @@ StringReverser::handleToken(QPDFTokenizer::Token const&amp; token)
70 68 class ColorToGray: public QPDFObjectHandle::TokenFilter
71 69 {
72 70 public:
73   - virtual ~ColorToGray()
74   - {
75   - }
  71 + virtual ~ColorToGray() = default;
76 72 virtual void handleToken(QPDFTokenizer::Token const&);
77 73 virtual void handleEOF();
78 74  
... ...
examples/pdf-invert-images.cc
... ... @@ -33,9 +33,7 @@ usage()
33 33 class ImageInverter: public QPDFObjectHandle::StreamDataProvider
34 34 {
35 35 public:
36   - virtual ~ImageInverter()
37   - {
38   - }
  36 + virtual ~ImageInverter() = default;
39 37 virtual void
40 38 provideStreamData(int objid, int generation, Pipeline* pipeline) override;
41 39  
... ...
examples/pdf-parse-content.cc
... ... @@ -23,10 +23,7 @@ usage()
23 23 class ParserCallbacks: public QPDFObjectHandle::ParserCallbacks
24 24 {
25 25 public:
26   - virtual ~ParserCallbacks()
27   - {
28   - }
29   -
  26 + virtual ~ParserCallbacks() = default;
30 27 virtual void contentSize(size_t);
31 28 virtual void handleObject(QPDFObjectHandle, size_t offset, size_t length);
32 29 virtual void handleEOF();
... ...
fuzz/qpdf_fuzzer.cc
... ... @@ -14,9 +14,7 @@
14 14 class DiscardContents: public QPDFObjectHandle::ParserCallbacks
15 15 {
16 16 public:
17   - virtual ~DiscardContents()
18   - {
19   - }
  17 + virtual ~DiscardContents() = default;
20 18 virtual void
21 19 handleObject(QPDFObjectHandle)
22 20 {
... ...
include/qpdf/Buffer.hh
... ... @@ -66,7 +66,7 @@ class Buffer
66 66  
67 67 private:
68 68 Members(size_t size, unsigned char* buf, bool own_memory);
69   - Members(Members const&);
  69 + Members(Members const&) = delete;
70 70  
71 71 bool own_memory;
72 72 size_t size;
... ...
include/qpdf/BufferInputSource.hh
... ... @@ -60,11 +60,11 @@ class QPDF_DLL_CLASS BufferInputSource: public InputSource
60 60  
61 61 public:
62 62 QPDF_DLL
63   - ~Members();
  63 + ~Members() = default;
64 64  
65 65 private:
66 66 Members(bool own_memory, std::string const& description, Buffer* buf);
67   - Members(Members const&);
  67 + Members(Members const&) = delete;
68 68  
69 69 bool own_memory;
70 70 std::string description;
... ...
include/qpdf/ClosedFileInputSource.hh
... ... @@ -79,7 +79,7 @@ class QPDF_DLL_CLASS ClosedFileInputSource: public InputSource
79 79  
80 80 public:
81 81 QPDF_DLL
82   - ~Members();
  82 + ~Members() = default;
83 83  
84 84 private:
85 85 Members(char const* filename);
... ...
include/qpdf/FileInputSource.hh
... ... @@ -64,7 +64,7 @@ class QPDF_DLL_CLASS FileInputSource: public InputSource
64 64  
65 65 private:
66 66 Members(bool close_file);
67   - Members(Members const&);
  67 + Members(Members const&) = delete;
68 68  
69 69 bool close_file;
70 70 std::string filename;
... ...
include/qpdf/InputSource.hh
... ... @@ -42,20 +42,13 @@ class QPDF_DLL_CLASS InputSource
42 42 {
43 43 }
44 44 QPDF_DLL
45   - virtual ~InputSource()
46   - {
47   - }
  45 + virtual ~InputSource() = default;
48 46  
49 47 class QPDF_DLL_CLASS Finder
50 48 {
51 49 public:
52   - Finder()
53   - {
54   - }
55   - virtual ~Finder()
56   - {
57   - }
58   -
  50 + Finder() = default;
  51 + virtual ~Finder() = default;
59 52 virtual bool check() = 0;
60 53 };
61 54  
... ... @@ -110,11 +103,11 @@ class QPDF_DLL_CLASS InputSource
110 103  
111 104 public:
112 105 QPDF_DLL
113   - ~Members();
  106 + ~Members() = default;
114 107  
115 108 private:
116   - Members();
117   - Members(Members const&);
  109 + Members() = default;
  110 + Members(Members const&) = delete;
118 111 };
119 112  
120 113 std::shared_ptr<Members> m;
... ...
include/qpdf/JSON.hh
... ... @@ -150,25 +150,25 @@ class JSON
150 150  
151 151 struct JSON_value
152 152 {
153   - virtual ~JSON_value();
  153 + virtual ~JSON_value() = default;
154 154 virtual std::string unparse(size_t depth) const = 0;
155 155 };
156 156 struct JSON_dictionary: public JSON_value
157 157 {
158   - virtual ~JSON_dictionary();
  158 + virtual ~JSON_dictionary() = default;
159 159 virtual std::string unparse(size_t depth) const;
160 160 std::map<std::string, std::shared_ptr<JSON_value>> members;
161 161 };
162 162 struct JSON_array: public JSON_value
163 163 {
164   - virtual ~JSON_array();
  164 + virtual ~JSON_array() = default;
165 165 virtual std::string unparse(size_t depth) const;
166 166 std::vector<std::shared_ptr<JSON_value>> elements;
167 167 };
168 168 struct JSON_string: public JSON_value
169 169 {
170 170 JSON_string(std::string const& utf8);
171   - virtual ~JSON_string();
  171 + virtual ~JSON_string() = default;
172 172 virtual std::string unparse(size_t depth) const;
173 173 std::string utf8;
174 174 std::string encoded;
... ... @@ -178,20 +178,20 @@ class JSON
178 178 JSON_number(long long val);
179 179 JSON_number(double val);
180 180 JSON_number(std::string const& val);
181   - virtual ~JSON_number();
  181 + virtual ~JSON_number() = default;
182 182 virtual std::string unparse(size_t depth) const;
183 183 std::string encoded;
184 184 };
185 185 struct JSON_bool: public JSON_value
186 186 {
187 187 JSON_bool(bool val);
188   - virtual ~JSON_bool();
  188 + virtual ~JSON_bool() = default;
189 189 virtual std::string unparse(size_t depth) const;
190 190 bool value;
191 191 };
192 192 struct JSON_null: public JSON_value
193 193 {
194   - virtual ~JSON_null();
  194 + virtual ~JSON_null() = default;
195 195 virtual std::string unparse(size_t depth) const;
196 196 };
197 197  
... ... @@ -210,11 +210,11 @@ class JSON
210 210  
211 211 public:
212 212 QPDF_DLL
213   - ~Members();
  213 + ~Members() = default;
214 214  
215 215 private:
216 216 Members(std::shared_ptr<JSON_value>);
217   - Members(Members const&);
  217 + Members(Members const&) = delete;
218 218  
219 219 std::shared_ptr<JSON_value> value;
220 220 };
... ...
include/qpdf/Pipeline.hh
... ... @@ -59,7 +59,7 @@ class QPDF_DLL_CLASS Pipeline
59 59 Pipeline(char const* identifier, Pipeline* next);
60 60  
61 61 QPDF_DLL
62   - virtual ~Pipeline();
  62 + virtual ~Pipeline() = default;
63 63  
64 64 // Subclasses should implement write and finish to do their jobs
65 65 // and then, if they are not end-of-line pipelines, call
... ...
include/qpdf/Pl_Buffer.hh
... ... @@ -77,11 +77,11 @@ class QPDF_DLL_CLASS Pl_Buffer: public Pipeline
77 77  
78 78 public:
79 79 QPDF_DLL
80   - ~Members();
  80 + ~Members() = default;
81 81  
82 82 private:
83 83 Members();
84   - Members(Members const&);
  84 + Members(Members const&) = delete;
85 85  
86 86 bool ready;
87 87 std::shared_ptr<Buffer> data;
... ...
include/qpdf/Pl_Concatenate.hh
... ... @@ -56,11 +56,11 @@ class QPDF_DLL_CLASS Pl_Concatenate: public Pipeline
56 56  
57 57 public:
58 58 QPDF_DLL
59   - ~Members();
  59 + ~Members() = default;
60 60  
61 61 private:
62   - Members();
63   - Members(Members const&);
  62 + Members() = default;
  63 + Members(Members const&) = delete;
64 64 };
65 65  
66 66 std::shared_ptr<Members> m;
... ...
include/qpdf/Pl_Count.hh
... ... @@ -54,11 +54,11 @@ class QPDF_DLL_CLASS Pl_Count: public Pipeline
54 54  
55 55 public:
56 56 QPDF_DLL
57   - ~Members();
  57 + ~Members() = default;
58 58  
59 59 private:
60 60 Members();
61   - Members(Members const&);
  61 + Members(Members const&) = delete;
62 62  
63 63 // Must be qpdf_offset_t, not size_t, to handle writing more than
64 64 // size_t can handle.
... ...
include/qpdf/Pl_DCT.hh
... ... @@ -41,12 +41,8 @@ class QPDF_DLL_CLASS Pl_DCT: public Pipeline
41 41 class QPDF_DLL_CLASS CompressConfig
42 42 {
43 43 public:
44   - CompressConfig()
45   - {
46   - }
47   - virtual ~CompressConfig()
48   - {
49   - }
  44 + CompressConfig() = default;
  45 + virtual ~CompressConfig() = default;
50 46 virtual void apply(jpeg_compress_struct*) = 0;
51 47 };
52 48  
... ... @@ -83,7 +79,7 @@ class QPDF_DLL_CLASS Pl_DCT: public Pipeline
83 79  
84 80 public:
85 81 QPDF_DLL
86   - ~Members();
  82 + ~Members() = default;
87 83  
88 84 private:
89 85 Members(
... ... @@ -94,7 +90,7 @@ class QPDF_DLL_CLASS Pl_DCT: public Pipeline
94 90 int components = 1,
95 91 J_COLOR_SPACE color_space = JCS_GRAYSCALE,
96 92 CompressConfig* config_callback = 0);
97   - Members(Members const&);
  93 + Members(Members const&) = delete;
98 94  
99 95 action_e action;
100 96 Pl_Buffer buf;
... ...
include/qpdf/Pl_Discard.hh
... ... @@ -49,11 +49,11 @@ class QPDF_DLL_CLASS Pl_Discard: public Pipeline
49 49  
50 50 public:
51 51 QPDF_DLL
52   - ~Members();
  52 + ~Members() = default;
53 53  
54 54 private:
55   - Members();
56   - Members(Members const&);
  55 + Members() = default;
  56 + Members(Members const&) = delete;
57 57 };
58 58  
59 59 std::shared_ptr<Members> m;
... ...
include/qpdf/Pl_Flate.hh
... ... @@ -80,7 +80,7 @@ class QPDF_DLL_CLASS Pl_Flate: public Pipeline
80 80  
81 81 private:
82 82 Members(size_t out_bufsize, action_e action);
83   - Members(Members const&);
  83 + Members(Members const&) = delete;
84 84  
85 85 std::shared_ptr<unsigned char> outbuf;
86 86 size_t out_bufsize;
... ...
include/qpdf/Pl_QPDFTokenizer.hh
... ... @@ -66,11 +66,11 @@ class QPDF_DLL_CLASS Pl_QPDFTokenizer: public Pipeline
66 66  
67 67 public:
68 68 QPDF_DLL
69   - ~Members();
  69 + ~Members() = default;
70 70  
71 71 private:
72 72 Members();
73   - Members(Members const&);
  73 + Members(Members const&) = delete;
74 74  
75 75 QPDFObjectHandle::TokenFilter* filter;
76 76 QPDFTokenizer tokenizer;
... ...
include/qpdf/Pl_RunLength.hh
... ... @@ -55,11 +55,11 @@ class QPDF_DLL_CLASS Pl_RunLength: public Pipeline
55 55  
56 56 public:
57 57 QPDF_DLL
58   - ~Members();
  58 + ~Members() = default;
59 59  
60 60 private:
61 61 Members(action_e);
62   - Members(Members const&);
  62 + Members(Members const&) = delete;
63 63  
64 64 action_e action;
65 65 state_e state;
... ...
include/qpdf/Pl_StdioFile.hh
... ... @@ -54,11 +54,11 @@ class QPDF_DLL_CLASS Pl_StdioFile: public Pipeline
54 54  
55 55 public:
56 56 QPDF_DLL
57   - ~Members();
  57 + ~Members() = default;
58 58  
59 59 private:
60 60 Members(FILE*);
61   - Members(Members const&);
  61 + Members(Members const&) = delete;
62 62  
63 63 FILE* file;
64 64 };
... ...
include/qpdf/QPDF.hh
... ... @@ -913,9 +913,7 @@ class QPDF
913 913 {
914 914 public:
915 915 CopiedStreamDataProvider(QPDF& destination_qpdf);
916   - virtual ~CopiedStreamDataProvider()
917   - {
918   - }
  916 + virtual ~CopiedStreamDataProvider() = default;
919 917 virtual bool provideStreamData(
920 918 int objid,
921 919 int generation,
... ... @@ -940,9 +938,7 @@ class QPDF
940 938  
941 939 public:
942 940 StringDecrypter(QPDF* qpdf, int objid, int gen);
943   - virtual ~StringDecrypter()
944   - {
945   - }
  941 + virtual ~StringDecrypter() = default;
946 942 virtual void decryptString(std::string& val);
947 943  
948 944 private:
... ... @@ -1381,9 +1377,7 @@ class QPDF
1381 1377 checker(checker)
1382 1378 {
1383 1379 }
1384   - virtual ~PatternFinder()
1385   - {
1386   - }
  1380 + virtual ~PatternFinder() = default;
1387 1381 virtual bool
1388 1382 check()
1389 1383 {
... ... @@ -1509,11 +1503,11 @@ class QPDF
1509 1503  
1510 1504 public:
1511 1505 QPDF_DLL
1512   - ~Members();
  1506 + ~Members() = default;
1513 1507  
1514 1508 private:
1515 1509 Members();
1516   - Members(Members const&);
  1510 + Members(Members const&) = delete;
1517 1511  
1518 1512 unsigned long long unique_id;
1519 1513 QPDFTokenizer tokenizer;
... ...
include/qpdf/QPDFAcroFormDocumentHelper.hh
... ... @@ -85,9 +85,7 @@ class QPDFAcroFormDocumentHelper: public QPDFDocumentHelper
85 85 QPDF_DLL
86 86 QPDFAcroFormDocumentHelper(QPDF&);
87 87 QPDF_DLL
88   - virtual ~QPDFAcroFormDocumentHelper()
89   - {
90   - }
  88 + virtual ~QPDFAcroFormDocumentHelper() = default;
91 89  
92 90 // This class lazily creates an internal cache of the mapping
93 91 // among form fields, annotations, and pages. Methods within this
... ... @@ -291,11 +289,11 @@ class QPDFAcroFormDocumentHelper: public QPDFDocumentHelper
291 289  
292 290 public:
293 291 QPDF_DLL
294   - ~Members();
  292 + ~Members() = default;
295 293  
296 294 private:
297 295 Members();
298   - Members(Members const&);
  296 + Members(Members const&) = delete;
299 297  
300 298 bool cache_valid;
301 299 std::map<QPDFObjGen, std::vector<QPDFAnnotationObjectHelper>>
... ...
include/qpdf/QPDFAnnotationObjectHelper.hh
... ... @@ -33,9 +33,7 @@ class QPDFAnnotationObjectHelper: public QPDFObjectHelper
33 33 QPDF_DLL
34 34 QPDFAnnotationObjectHelper(QPDFObjectHandle);
35 35 QPDF_DLL
36   - virtual ~QPDFAnnotationObjectHelper()
37   - {
38   - }
  36 + virtual ~QPDFAnnotationObjectHelper() = default;
39 37  
40 38 // This class provides helper methods for annotations. More
41 39 // functionality will likely be added in the future.
... ... @@ -108,11 +106,11 @@ class QPDFAnnotationObjectHelper: public QPDFObjectHelper
108 106  
109 107 public:
110 108 QPDF_DLL
111   - ~Members();
  109 + ~Members() = default;
112 110  
113 111 private:
114   - Members();
115   - Members(Members const&);
  112 + Members() = default;
  113 + Members(Members const&) = delete;
116 114 };
117 115  
118 116 std::shared_ptr<Members> m;
... ...
include/qpdf/QPDFDocumentHelper.hh
... ... @@ -45,9 +45,7 @@ class QPDFDocumentHelper
45 45 {
46 46 }
47 47 QPDF_DLL
48   - virtual ~QPDFDocumentHelper()
49   - {
50   - }
  48 + virtual ~QPDFDocumentHelper() = default;
51 49 QPDF_DLL
52 50 QPDF&
53 51 getQPDF()
... ...
include/qpdf/QPDFEFStreamObjectHelper.hh
... ... @@ -112,7 +112,7 @@ class QPDFEFStreamObjectHelper: public QPDFObjectHelper
112 112 ~Members() = default;
113 113  
114 114 private:
115   - Members();
  115 + Members() = default;
116 116 Members(Members const&) = delete;
117 117 };
118 118  
... ...
include/qpdf/QPDFEmbeddedFileDocumentHelper.hh
... ... @@ -85,7 +85,7 @@ class QPDFEmbeddedFileDocumentHelper: public QPDFDocumentHelper
85 85 ~Members() = default;
86 86  
87 87 private:
88   - Members();
  88 + Members() = default;
89 89 Members(Members const&) = delete;
90 90  
91 91 std::shared_ptr<QPDFNameTreeObjectHelper> embedded_files;
... ...
include/qpdf/QPDFExc.hh
... ... @@ -40,9 +40,7 @@ class QPDF_DLL_CLASS QPDFExc: public std::runtime_error
40 40 qpdf_offset_t offset,
41 41 std::string const& message);
42 42 QPDF_DLL
43   - virtual ~QPDFExc() noexcept
44   - {
45   - }
  43 + virtual ~QPDFExc() noexcept = default;
46 44  
47 45 // To get a complete error string, call what(), provided by
48 46 // std::exception. The accessors below return the original values
... ...
include/qpdf/QPDFFileSpecObjectHelper.hh
... ... @@ -109,7 +109,7 @@ class QPDFFileSpecObjectHelper: public QPDFObjectHelper
109 109 ~Members() = default;
110 110  
111 111 private:
112   - Members();
  112 + Members() = default;
113 113 Members(Members const&) = delete;
114 114 };
115 115  
... ...
include/qpdf/QPDFFormFieldObjectHelper.hh
... ... @@ -41,9 +41,7 @@ class QPDFFormFieldObjectHelper: public QPDFObjectHelper
41 41 QPDF_DLL
42 42 QPDFFormFieldObjectHelper(QPDFObjectHandle);
43 43 QPDF_DLL
44   - virtual ~QPDFFormFieldObjectHelper()
45   - {
46   - }
  44 + virtual ~QPDFFormFieldObjectHelper() = default;
47 45  
48 46 QPDF_DLL
49 47 bool isNull();
... ... @@ -229,11 +227,11 @@ class QPDFFormFieldObjectHelper: public QPDFObjectHelper
229 227  
230 228 public:
231 229 QPDF_DLL
232   - ~Members();
  230 + ~Members() = default;
233 231  
234 232 private:
235   - Members();
236   - Members(Members const&);
  233 + Members() = default;
  234 + Members(Members const&) = delete;
237 235 };
238 236  
239 237 std::shared_ptr<Members> m;
... ...
include/qpdf/QPDFNameTreeObjectHelper.hh
... ... @@ -62,7 +62,7 @@ class QPDFNameTreeObjectHelper: public QPDFObjectHelper
62 62 static QPDFNameTreeObjectHelper newEmpty(QPDF&, bool auto_repair = true);
63 63  
64 64 QPDF_DLL
65   - virtual ~QPDFNameTreeObjectHelper();
  65 + virtual ~QPDFNameTreeObjectHelper() = default;
66 66  
67 67 // Return whether the number tree has an explicit entry for this
68 68 // number.
... ... @@ -194,7 +194,7 @@ class QPDFNameTreeObjectHelper: public QPDFObjectHelper
194 194  
195 195 public:
196 196 QPDF_DLL
197   - ~Members();
  197 + ~Members() = default;
198 198  
199 199 private:
200 200 Members(QPDFObjectHandle& oh, QPDF*, bool auto_repair);
... ...
include/qpdf/QPDFNumberTreeObjectHelper.hh
... ... @@ -55,11 +55,8 @@ class QPDFNumberTreeObjectHelper: public QPDFObjectHelper
55 55 [[deprecated("use constructor that takes QPDF&")]] QPDF_DLL
56 56 QPDFNumberTreeObjectHelper(QPDFObjectHandle);
57 57  
58   - // ABI: = default
59 58 QPDF_DLL
60   - virtual ~QPDFNumberTreeObjectHelper()
61   - {
62   - }
  59 + virtual ~QPDFNumberTreeObjectHelper() = default;
63 60  
64 61 // Create an empty number tree
65 62 QPDF_DLL
... ... @@ -217,7 +214,7 @@ class QPDFNumberTreeObjectHelper: public QPDFObjectHelper
217 214  
218 215 public:
219 216 QPDF_DLL
220   - ~Members();
  217 + ~Members() = default;
221 218  
222 219 private:
223 220 Members(QPDFObjectHandle& oh, QPDF*, bool auto_repair);
... ...
include/qpdf/QPDFObject.hh
... ... @@ -62,9 +62,7 @@ class QPDFObject
62 62 static constexpr object_type_e ot_operator = ::ot_operator;
63 63 static constexpr object_type_e ot_inlineimage = ::ot_inlineimage;
64 64  
65   - virtual ~QPDFObject()
66   - {
67   - }
  65 + virtual ~QPDFObject() = default;
68 66 virtual std::string unparse() = 0;
69 67 virtual JSON getJSON() = 0;
70 68  
... ...
include/qpdf/QPDFObjectHandle.hh
... ... @@ -64,9 +64,7 @@ class QPDFObjectHandle
64 64 StreamDataProvider(bool supports_retry = false);
65 65  
66 66 QPDF_DLL
67   - virtual ~StreamDataProvider()
68   - {
69   - }
  67 + virtual ~StreamDataProvider();
70 68 // The implementation of this function must write stream data
71 69 // to the given pipeline. The stream data must conform to
72 70 // whatever filters are explicitly associated with the stream.
... ... @@ -172,13 +170,9 @@ class QPDFObjectHandle
172 170 {
173 171 public:
174 172 QPDF_DLL
175   - TokenFilter()
176   - {
177   - }
  173 + TokenFilter() = default;
178 174 QPDF_DLL
179   - virtual ~TokenFilter()
180   - {
181   - }
  175 + virtual ~TokenFilter() = default;
182 176 virtual void handleToken(QPDFTokenizer::Token const&) = 0;
183 177 QPDF_DLL
184 178 virtual void handleEOF();
... ... @@ -216,9 +210,7 @@ class QPDFObjectHandle
216 210 {
217 211 public:
218 212 QPDF_DLL
219   - virtual ~StringDecrypter()
220   - {
221   - }
  213 + virtual ~StringDecrypter() = default;
222 214 virtual void decryptString(std::string& val) = 0;
223 215 };
224 216  
... ... @@ -229,9 +221,7 @@ class QPDFObjectHandle
229 221 {
230 222 public:
231 223 QPDF_DLL
232   - virtual ~ParserCallbacks()
233   - {
234   - }
  224 + virtual ~ParserCallbacks() = default;
235 225 // One of the handleObject methods must be overridden.
236 226 QPDF_DLL
237 227 virtual void handleObject(QPDFObjectHandle);
... ...
include/qpdf/QPDFObjectHelper.hh
... ... @@ -46,9 +46,7 @@ class QPDFObjectHelper
46 46 {
47 47 }
48 48 QPDF_DLL
49   - virtual ~QPDFObjectHelper()
50   - {
51   - }
  49 + virtual ~QPDFObjectHelper() = default;
52 50 QPDF_DLL
53 51 QPDFObjectHandle
54 52 getObjectHandle()
... ...
include/qpdf/QPDFOutlineDocumentHelper.hh
... ... @@ -45,7 +45,7 @@ class QPDFOutlineDocumentHelper: public QPDFDocumentHelper
45 45 QPDF_DLL
46 46 QPDFOutlineDocumentHelper(QPDF&);
47 47 QPDF_DLL
48   - virtual ~QPDFOutlineDocumentHelper();
  48 + virtual ~QPDFOutlineDocumentHelper() = default;
49 49  
50 50 QPDF_DLL
51 51 bool hasOutlines();
... ... @@ -88,11 +88,11 @@ class QPDFOutlineDocumentHelper: public QPDFDocumentHelper
88 88  
89 89 public:
90 90 QPDF_DLL
91   - ~Members();
  91 + ~Members() = default;
92 92  
93 93 private:
94   - Members();
95   - Members(Members const&);
  94 + Members() = default;
  95 + Members(Members const&) = delete;
96 96  
97 97 std::vector<QPDFOutlineObjectHelper> outlines;
98 98 std::set<QPDFObjGen> seen;
... ...
include/qpdf/QPDFOutlineObjectHelper.hh
... ... @@ -105,11 +105,11 @@ class QPDFOutlineObjectHelper: public QPDFObjectHelper
105 105  
106 106 public:
107 107 QPDF_DLL
108   - ~Members();
  108 + ~Members() = default;
109 109  
110 110 private:
111 111 Members(QPDFOutlineDocumentHelper& dh);
112   - Members(Members const&);
  112 + Members(Members const&) = delete;
113 113  
114 114 QPDFOutlineDocumentHelper& dh;
115 115 std::shared_ptr<QPDFOutlineObjectHelper> parent;
... ...
include/qpdf/QPDFPageDocumentHelper.hh
... ... @@ -40,9 +40,7 @@ class QPDFPageDocumentHelper: public QPDFDocumentHelper
40 40 QPDF_DLL
41 41 QPDFPageDocumentHelper(QPDF&);
42 42 QPDF_DLL
43   - virtual ~QPDFPageDocumentHelper()
44   - {
45   - }
  43 + virtual ~QPDFPageDocumentHelper() = default;
46 44  
47 45 // Traverse page tree, and return all /Page objects wrapped in
48 46 // QPDFPageObjectHelper objects. Unlike with
... ... @@ -144,11 +142,11 @@ class QPDFPageDocumentHelper: public QPDFDocumentHelper
144 142  
145 143 public:
146 144 QPDF_DLL
147   - ~Members();
  145 + ~Members() = default;
148 146  
149 147 private:
150   - Members();
151   - Members(Members const&);
  148 + Members() = default;
  149 + Members(Members const&) = delete;
152 150 };
153 151  
154 152 std::shared_ptr<Members> m;
... ...
include/qpdf/QPDFPageLabelDocumentHelper.hh
... ... @@ -50,9 +50,7 @@ class QPDFPageLabelDocumentHelper: public QPDFDocumentHelper
50 50 QPDF_DLL
51 51 QPDFPageLabelDocumentHelper(QPDF&);
52 52 QPDF_DLL
53   - virtual ~QPDFPageLabelDocumentHelper()
54   - {
55   - }
  53 + virtual ~QPDFPageLabelDocumentHelper() = default;
56 54  
57 55 QPDF_DLL
58 56 bool hasPageLabels();
... ... @@ -90,11 +88,11 @@ class QPDFPageLabelDocumentHelper: public QPDFDocumentHelper
90 88  
91 89 public:
92 90 QPDF_DLL
93   - ~Members();
  91 + ~Members() = default;
94 92  
95 93 private:
96   - Members();
97   - Members(Members const&);
  94 + Members() = default;
  95 + Members(Members const&) = delete;
98 96  
99 97 std::shared_ptr<QPDFNumberTreeObjectHelper> labels;
100 98 };
... ...
include/qpdf/QPDFPageObjectHelper.hh
... ... @@ -43,9 +43,7 @@ class QPDFPageObjectHelper: public QPDFObjectHelper
43 43 QPDF_DLL
44 44 QPDFPageObjectHelper(QPDFObjectHandle);
45 45 QPDF_DLL
46   - virtual ~QPDFPageObjectHelper()
47   - {
48   - }
  46 + virtual ~QPDFPageObjectHelper() = default;
49 47  
50 48 // Works with pages and form XObjects. Return the effective value
51 49 // of this attribute for the page/form XObject. For pages, if the
... ... @@ -384,11 +382,11 @@ class QPDFPageObjectHelper: public QPDFObjectHelper
384 382  
385 383 public:
386 384 QPDF_DLL
387   - ~Members();
  385 + ~Members() = default;
388 386  
389 387 private:
390   - Members();
391   - Members(Members const&);
  388 + Members() = default;
  389 + Members(Members const&) = delete;
392 390 };
393 391  
394 392 std::shared_ptr<Members> m;
... ...
include/qpdf/QPDFSystemError.hh
... ... @@ -35,7 +35,7 @@ class QPDF_DLL_CLASS QPDFSystemError: public std::runtime_error
35 35 QPDF_DLL
36 36 QPDFSystemError(std::string const& description, int system_errno);
37 37 QPDF_DLL
38   - virtual ~QPDFSystemError() noexcept;
  38 + virtual ~QPDFSystemError() noexcept = default;
39 39  
40 40 // To get a complete error string, call what(), provided by
41 41 // std::exception. The accessors below return the original values
... ...
include/qpdf/QPDFTokenizer.hh
... ... @@ -217,11 +217,11 @@ class QPDFTokenizer
217 217  
218 218 public:
219 219 QPDF_DLL
220   - ~Members();
  220 + ~Members() = default;
221 221  
222 222 private:
223 223 Members();
224   - Members(Members const&);
  224 + Members(Members const&) = delete;
225 225 void reset();
226 226  
227 227 // Lexer state
... ...
include/qpdf/QPDFWriter.hh
... ... @@ -75,14 +75,12 @@ class QPDFWriter
75 75 QPDFWriter(QPDF& pdf, char const* description, FILE* file, bool close_file);
76 76  
77 77 QPDF_DLL
78   - ~QPDFWriter();
  78 + ~QPDFWriter() = default;
79 79  
80 80 class QPDF_DLL_CLASS ProgressReporter
81 81 {
82 82 public:
83   - virtual ~ProgressReporter()
84   - {
85   - }
  83 + virtual ~ProgressReporter() = default;
86 84  
87 85 // This method is called with a value from 0 to 100 to
88 86 // indicate approximate progress through the write process.
... ... @@ -718,7 +716,7 @@ class QPDFWriter
718 716  
719 717 private:
720 718 Members(QPDF& pdf);
721   - Members(Members const&);
  719 + Members(Members const&) = delete;
722 720  
723 721 QPDF& pdf;
724 722 char const* filename;
... ...
include/qpdf/RandomDataProvider.hh
... ... @@ -28,9 +28,7 @@
28 28 class QPDF_DLL_CLASS RandomDataProvider
29 29 {
30 30 public:
31   - virtual ~RandomDataProvider()
32   - {
33   - }
  31 + virtual ~RandomDataProvider() = default;
34 32 virtual void provideRandomData(unsigned char* data, size_t len) = 0;
35 33  
36 34 protected:
... ...
libqpdf/AES_PDF_native.cc
... ... @@ -36,10 +36,6 @@ AES_PDF_native::AES_PDF_native(
36 36 }
37 37 }
38 38  
39   -AES_PDF_native::~AES_PDF_native()
40   -{
41   -}
42   -
43 39 void
44 40 AES_PDF_native::update(unsigned char* in_data, unsigned char* out_data)
45 41 {
... ...
libqpdf/BufferInputSource.cc
... ... @@ -17,10 +17,6 @@ BufferInputSource::Members::Members(
17 17 {
18 18 }
19 19  
20   -BufferInputSource::Members::~Members()
21   -{
22   -}
23   -
24 20 BufferInputSource::BufferInputSource(
25 21 std::string const& description, Buffer* buf, bool own_memory) :
26 22 m(new Members(own_memory, description, buf))
... ...
libqpdf/ClosedFileInputSource.cc
... ... @@ -9,10 +9,6 @@ ClosedFileInputSource::Members::Members(char const* filename) :
9 9 {
10 10 }
11 11  
12   -ClosedFileInputSource::Members::~Members()
13   -{
14   -}
15   -
16 12 ClosedFileInputSource::ClosedFileInputSource(char const* filename) :
17 13 m(new Members(filename))
18 14 {
... ... @@ -20,6 +16,8 @@ ClosedFileInputSource::ClosedFileInputSource(char const* filename) :
20 16  
21 17 ClosedFileInputSource::~ClosedFileInputSource()
22 18 {
  19 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  20 + // README-maintainer
23 21 }
24 22  
25 23 void
... ...
libqpdf/ContentNormalizer.cc
... ... @@ -8,10 +8,6 @@ ContentNormalizer::ContentNormalizer() :
8 8 {
9 9 }
10 10  
11   -ContentNormalizer::~ContentNormalizer()
12   -{
13   -}
14   -
15 11 void
16 12 ContentNormalizer::handleToken(QPDFTokenizer::Token const& token)
17 13 {
... ...
libqpdf/CryptoRandomDataProvider.cc
... ... @@ -2,14 +2,6 @@
2 2  
3 3 #include <qpdf/QPDFCryptoProvider.hh>
4 4  
5   -CryptoRandomDataProvider::CryptoRandomDataProvider()
6   -{
7   -}
8   -
9   -CryptoRandomDataProvider::~CryptoRandomDataProvider()
10   -{
11   -}
12   -
13 5 void
14 6 CryptoRandomDataProvider::provideRandomData(unsigned char* data, size_t len)
15 7 {
... ...
libqpdf/FileInputSource.cc
... ... @@ -42,6 +42,8 @@ FileInputSource::setFile(char const* description, FILE* filep, bool close_file)
42 42  
43 43 FileInputSource::~FileInputSource()
44 44 {
  45 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  46 + // README-maintainer
45 47 }
46 48  
47 49 qpdf_offset_t
... ...
libqpdf/InputSource.cc
... ... @@ -5,14 +5,6 @@
5 5 #include <stdexcept>
6 6 #include <string.h>
7 7  
8   -InputSource::Members::Members()
9   -{
10   -}
11   -
12   -InputSource::Members::~Members()
13   -{
14   -}
15   -
16 8 void
17 9 InputSource::setLastOffset(qpdf_offset_t offset)
18 10 {
... ...
libqpdf/InsecureRandomDataProvider.cc
... ... @@ -9,10 +9,6 @@ InsecureRandomDataProvider::InsecureRandomDataProvider() :
9 9 {
10 10 }
11 11  
12   -InsecureRandomDataProvider::~InsecureRandomDataProvider()
13   -{
14   -}
15   -
16 12 void
17 13 InsecureRandomDataProvider::provideRandomData(unsigned char* data, size_t len)
18 14 {
... ...
libqpdf/JSON.cc
... ... @@ -5,10 +5,6 @@
5 5 #include <cstring>
6 6 #include <stdexcept>
7 7  
8   -JSON::Members::~Members()
9   -{
10   -}
11   -
12 8 JSON::Members::Members(std::shared_ptr<JSON_value> value) :
13 9 value(value)
14 10 {
... ... @@ -19,14 +15,6 @@ JSON::JSON(std::shared_ptr&lt;JSON_value&gt; value) :
19 15 {
20 16 }
21 17  
22   -JSON::JSON_value::~JSON_value()
23   -{
24   -}
25   -
26   -JSON::JSON_dictionary::~JSON_dictionary()
27   -{
28   -}
29   -
30 18 std::string
31 19 JSON::JSON_dictionary::unparse(size_t depth) const
32 20 {
... ... @@ -51,10 +39,6 @@ JSON::JSON_dictionary::unparse(size_t depth) const
51 39 return result;
52 40 }
53 41  
54   -JSON::JSON_array::~JSON_array()
55   -{
56   -}
57   -
58 42 std::string
59 43 JSON::JSON_array::unparse(size_t depth) const
60 44 {
... ... @@ -84,10 +68,6 @@ JSON::JSON_string::JSON_string(std::string const&amp; utf8) :
84 68 {
85 69 }
86 70  
87   -JSON::JSON_string::~JSON_string()
88   -{
89   -}
90   -
91 71 std::string
92 72 JSON::JSON_string::unparse(size_t) const
93 73 {
... ... @@ -109,10 +89,6 @@ JSON::JSON_number::JSON_number(std::string const&amp; value) :
109 89 {
110 90 }
111 91  
112   -JSON::JSON_number::~JSON_number()
113   -{
114   -}
115   -
116 92 std::string
117 93 JSON::JSON_number::unparse(size_t) const
118 94 {
... ... @@ -124,20 +100,12 @@ JSON::JSON_bool::JSON_bool(bool val) :
124 100 {
125 101 }
126 102  
127   -JSON::JSON_bool::~JSON_bool()
128   -{
129   -}
130   -
131 103 std::string
132 104 JSON::JSON_bool::unparse(size_t) const
133 105 {
134 106 return value ? "true" : "false";
135 107 }
136 108  
137   -JSON::JSON_null::~JSON_null()
138   -{
139   -}
140   -
141 109 std::string
142 110 JSON::JSON_null::unparse(size_t) const
143 111 {
... ...
libqpdf/JSONHandler.cc
... ... @@ -9,10 +9,6 @@ JSONHandler::JSONHandler() :
9 9 {
10 10 }
11 11  
12   -JSONHandler::Members::Members()
13   -{
14   -}
15   -
16 12 void
17 13 JSONHandler::usage(std::string const& msg)
18 14 {
... ...
libqpdf/OffsetInputSource.cc
... ... @@ -17,10 +17,6 @@ OffsetInputSource::OffsetInputSource(
17 17 std::numeric_limits<qpdf_offset_t>::max() - global_offset;
18 18 }
19 19  
20   -OffsetInputSource::~OffsetInputSource()
21   -{
22   -}
23   -
24 20 qpdf_offset_t
25 21 OffsetInputSource::findAndSkipNextEOL()
26 22 {
... ...
libqpdf/Pipeline.cc
... ... @@ -8,10 +8,6 @@ Pipeline::Pipeline(char const* identifier, Pipeline* next) :
8 8 {
9 9 }
10 10  
11   -Pipeline::~Pipeline()
12   -{
13   -}
14   -
15 11 Pipeline*
16 12 Pipeline::getNext(bool allow_null)
17 13 {
... ...
libqpdf/Pl_AES_PDF.cc
... ... @@ -35,10 +35,6 @@ Pl_AES_PDF::Pl_AES_PDF(
35 35 std::memset(this->cbc_block, 0, this->buf_size);
36 36 }
37 37  
38   -Pl_AES_PDF::~Pl_AES_PDF()
39   -{
40   -}
41   -
42 38 void
43 39 Pl_AES_PDF::useZeroIV()
44 40 {
... ...
libqpdf/Pl_ASCII85Decoder.cc
... ... @@ -12,10 +12,6 @@ Pl_ASCII85Decoder::Pl_ASCII85Decoder(char const* identifier, Pipeline* next) :
12 12 memset(this->inbuf, 117, 5);
13 13 }
14 14  
15   -Pl_ASCII85Decoder::~Pl_ASCII85Decoder()
16   -{
17   -}
18   -
19 15 void
20 16 Pl_ASCII85Decoder::write(unsigned char* buf, size_t len)
21 17 {
... ...
libqpdf/Pl_ASCIIHexDecoder.cc
... ... @@ -15,10 +15,6 @@ Pl_ASCIIHexDecoder::Pl_ASCIIHexDecoder(char const* identifier, Pipeline* next) :
15 15 this->inbuf[2] = '\0';
16 16 }
17 17  
18   -Pl_ASCIIHexDecoder::~Pl_ASCIIHexDecoder()
19   -{
20   -}
21   -
22 18 void
23 19 Pl_ASCIIHexDecoder::write(unsigned char* buf, size_t len)
24 20 {
... ...
libqpdf/Pl_Buffer.cc
... ... @@ -12,10 +12,6 @@ Pl_Buffer::Members::Members() :
12 12 {
13 13 }
14 14  
15   -Pl_Buffer::Members::~Members()
16   -{
17   -}
18   -
19 15 Pl_Buffer::Pl_Buffer(char const* identifier, Pipeline* next) :
20 16 Pipeline(identifier, next),
21 17 m(new Members())
... ... @@ -24,6 +20,8 @@ Pl_Buffer::Pl_Buffer(char const* identifier, Pipeline* next) :
24 20  
25 21 Pl_Buffer::~Pl_Buffer()
26 22 {
  23 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  24 + // README-maintainer
27 25 }
28 26  
29 27 void
... ...
libqpdf/Pl_Concatenate.cc
1 1 #include <qpdf/Pl_Concatenate.hh>
2 2  
3   -Pl_Concatenate::Members::Members()
4   -{
5   -}
6   -
7   -Pl_Concatenate::Members::~Members()
8   -{
9   -}
10   -
11 3 Pl_Concatenate::Pl_Concatenate(char const* identifier, Pipeline* next) :
12 4 Pipeline(identifier, next)
13 5 {
... ... @@ -15,6 +7,8 @@ Pl_Concatenate::Pl_Concatenate(char const* identifier, Pipeline* next) :
15 7  
16 8 Pl_Concatenate::~Pl_Concatenate()
17 9 {
  10 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  11 + // README-maintainer
18 12 }
19 13  
20 14 void
... ...
libqpdf/Pl_Count.cc
... ... @@ -8,10 +8,6 @@ Pl_Count::Members::Members() :
8 8 {
9 9 }
10 10  
11   -Pl_Count::Members::~Members()
12   -{
13   -}
14   -
15 11 Pl_Count::Pl_Count(char const* identifier, Pipeline* next) :
16 12 Pipeline(identifier, next),
17 13 m(new Members())
... ... @@ -20,6 +16,8 @@ Pl_Count::Pl_Count(char const* identifier, Pipeline* next) :
20 16  
21 17 Pl_Count::~Pl_Count()
22 18 {
  19 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  20 + // README-maintainer
23 21 }
24 22  
25 23 void
... ...
libqpdf/Pl_DCT.cc
... ... @@ -50,10 +50,6 @@ Pl_DCT::Members::Members(
50 50 {
51 51 }
52 52  
53   -Pl_DCT::Members::~Members()
54   -{
55   -}
56   -
57 53 Pl_DCT::Pl_DCT(char const* identifier, Pipeline* next) :
58 54 Pipeline(identifier, next),
59 55 m(new Members(a_decompress, "DCT compressed image"))
... ... @@ -82,6 +78,8 @@ Pl_DCT::Pl_DCT(
82 78  
83 79 Pl_DCT::~Pl_DCT()
84 80 {
  81 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  82 + // README-maintainer
85 83 }
86 84  
87 85 void
... ...
libqpdf/Pl_Discard.cc
... ... @@ -2,14 +2,6 @@
2 2  
3 3 // Exercised in md5 test suite
4 4  
5   -Pl_Discard::Members::Members()
6   -{
7   -}
8   -
9   -Pl_Discard::Members::~Members()
10   -{
11   -}
12   -
13 5 Pl_Discard::Pl_Discard() :
14 6 Pipeline("discard", 0)
15 7 {
... ... @@ -17,6 +9,8 @@ Pl_Discard::Pl_Discard() :
17 9  
18 10 Pl_Discard::~Pl_Discard()
19 11 {
  12 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  13 + // README-maintainer
20 14 }
21 15  
22 16 void
... ...
libqpdf/Pl_Flate.cc
... ... @@ -65,6 +65,8 @@ Pl_Flate::Pl_Flate(
65 65  
66 66 Pl_Flate::~Pl_Flate()
67 67 {
  68 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  69 + // README-maintainer
68 70 }
69 71  
70 72 void
... ...
libqpdf/Pl_LZWDecoder.cc
... ... @@ -22,10 +22,6 @@ Pl_LZWDecoder::Pl_LZWDecoder(
22 22 memset(buf, 0, 3);
23 23 }
24 24  
25   -Pl_LZWDecoder::~Pl_LZWDecoder()
26   -{
27   -}
28   -
29 25 void
30 26 Pl_LZWDecoder::write(unsigned char* bytes, size_t len)
31 27 {
... ...
libqpdf/Pl_MD5.cc
... ... @@ -10,10 +10,6 @@ Pl_MD5::Pl_MD5(char const* identifier, Pipeline* next) :
10 10 {
11 11 }
12 12  
13   -Pl_MD5::~Pl_MD5()
14   -{
15   -}
16   -
17 13 void
18 14 Pl_MD5::write(unsigned char* buf, size_t len)
19 15 {
... ...
libqpdf/Pl_PNGFilter.cc
... ... @@ -61,10 +61,6 @@ Pl_PNGFilter::Pl_PNGFilter(
61 61 (action == a_encode ? this->bytes_per_row : this->bytes_per_row + 1);
62 62 }
63 63  
64   -Pl_PNGFilter::~Pl_PNGFilter()
65   -{
66   -}
67   -
68 64 void
69 65 Pl_PNGFilter::write(unsigned char* data, size_t len)
70 66 {
... ...
libqpdf/Pl_QPDFTokenizer.cc
... ... @@ -12,10 +12,6 @@ Pl_QPDFTokenizer::Members::Members() :
12 12 {
13 13 }
14 14  
15   -Pl_QPDFTokenizer::Members::~Members()
16   -{
17   -}
18   -
19 15 Pl_QPDFTokenizer::Pl_QPDFTokenizer(
20 16 char const* identifier,
21 17 QPDFObjectHandle::TokenFilter* filter,
... ... @@ -32,6 +28,8 @@ Pl_QPDFTokenizer::Pl_QPDFTokenizer(
32 28  
33 29 Pl_QPDFTokenizer::~Pl_QPDFTokenizer()
34 30 {
  31 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  32 + // README-maintainer
35 33 }
36 34  
37 35 void
... ...
libqpdf/Pl_RC4.cc
... ... @@ -15,10 +15,6 @@ Pl_RC4::Pl_RC4(
15 15 this->outbuf = QUtil::make_shared_array<unsigned char>(out_bufsize);
16 16 }
17 17  
18   -Pl_RC4::~Pl_RC4()
19   -{
20   -}
21   -
22 18 void
23 19 Pl_RC4::write(unsigned char* data, size_t len)
24 20 {
... ...
libqpdf/Pl_RunLength.cc
... ... @@ -10,10 +10,6 @@ Pl_RunLength::Members::Members(action_e action) :
10 10 {
11 11 }
12 12  
13   -Pl_RunLength::Members::~Members()
14   -{
15   -}
16   -
17 13 Pl_RunLength::Pl_RunLength(
18 14 char const* identifier, Pipeline* next, action_e action) :
19 15 Pipeline(identifier, next),
... ... @@ -23,6 +19,8 @@ Pl_RunLength::Pl_RunLength(
23 19  
24 20 Pl_RunLength::~Pl_RunLength()
25 21 {
  22 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  23 + // README-maintainer
26 24 }
27 25  
28 26 void
... ...
libqpdf/Pl_SHA2.cc
... ... @@ -14,10 +14,6 @@ Pl_SHA2::Pl_SHA2(int bits, Pipeline* next) :
14 14 }
15 15 }
16 16  
17   -Pl_SHA2::~Pl_SHA2()
18   -{
19   -}
20   -
21 17 void
22 18 Pl_SHA2::write(unsigned char* buf, size_t len)
23 19 {
... ...
libqpdf/Pl_StdioFile.cc
... ... @@ -11,10 +11,6 @@ Pl_StdioFile::Members::Members(FILE* f) :
11 11 {
12 12 }
13 13  
14   -Pl_StdioFile::Members::~Members()
15   -{
16   -}
17   -
18 14 Pl_StdioFile::Pl_StdioFile(char const* identifier, FILE* f) :
19 15 Pipeline(identifier, 0),
20 16 m(new Members(f))
... ... @@ -23,6 +19,8 @@ Pl_StdioFile::Pl_StdioFile(char const* identifier, FILE* f) :
23 19  
24 20 Pl_StdioFile::~Pl_StdioFile()
25 21 {
  22 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  23 + // README-maintainer
26 24 }
27 25  
28 26 void
... ...
libqpdf/Pl_TIFFPredictor.cc
... ... @@ -45,10 +45,6 @@ Pl_TIFFPredictor::Pl_TIFFPredictor(
45 45 memset(this->cur_row.get(), 0, this->bytes_per_row);
46 46 }
47 47  
48   -Pl_TIFFPredictor::~Pl_TIFFPredictor()
49   -{
50   -}
51   -
52 48 void
53 49 Pl_TIFFPredictor::write(unsigned char* data, size_t len)
54 50 {
... ...
libqpdf/QPDF.cc
... ... @@ -230,10 +230,6 @@ QPDF::Members::Members() :
230 230 {
231 231 }
232 232  
233   -QPDF::Members::~Members()
234   -{
235   -}
236   -
237 233 QPDF::QPDF() :
238 234 m(new Members())
239 235 {
... ...
libqpdf/QPDFAcroFormDocumentHelper.cc
... ... @@ -6,10 +6,6 @@
6 6 #include <qpdf/QUtil.hh>
7 7 #include <qpdf/ResourceFinder.hh>
8 8  
9   -QPDFAcroFormDocumentHelper::Members::~Members()
10   -{
11   -}
12   -
13 9 QPDFAcroFormDocumentHelper::Members::Members() :
14 10 cache_valid(false)
15 11 {
... ...
libqpdf/QPDFAnnotationObjectHelper.cc
... ... @@ -6,14 +6,6 @@
6 6 #include <qpdf/QTC.hh>
7 7 #include <qpdf/QUtil.hh>
8 8  
9   -QPDFAnnotationObjectHelper::Members::~Members()
10   -{
11   -}
12   -
13   -QPDFAnnotationObjectHelper::Members::Members()
14   -{
15   -}
16   -
17 9 QPDFAnnotationObjectHelper::QPDFAnnotationObjectHelper(QPDFObjectHandle oh) :
18 10 QPDFObjectHelper(oh)
19 11 {
... ...
libqpdf/QPDFEFStreamObjectHelper.cc
... ... @@ -12,10 +12,6 @@ QPDFEFStreamObjectHelper::QPDFEFStreamObjectHelper(QPDFObjectHandle oh) :
12 12 {
13 13 }
14 14  
15   -QPDFEFStreamObjectHelper::Members::Members()
16   -{
17   -}
18   -
19 15 QPDFObjectHandle
20 16 QPDFEFStreamObjectHelper::getParam(std::string const& pkey)
21 17 {
... ...
libqpdf/QPDFEmbeddedFileDocumentHelper.cc
... ... @@ -47,10 +47,6 @@ QPDFEmbeddedFileDocumentHelper::QPDFEmbeddedFileDocumentHelper(QPDF&amp; qpdf) :
47 47 }
48 48 }
49 49  
50   -QPDFEmbeddedFileDocumentHelper::Members::Members()
51   -{
52   -}
53   -
54 50 bool
55 51 QPDFEmbeddedFileDocumentHelper::hasEmbeddedFiles() const
56 52 {
... ...
libqpdf/QPDFFileSpecObjectHelper.cc
... ... @@ -19,10 +19,6 @@ QPDFFileSpecObjectHelper::QPDFFileSpecObjectHelper(QPDFObjectHandle oh) :
19 19 }
20 20 }
21 21  
22   -QPDFFileSpecObjectHelper::Members::Members()
23   -{
24   -}
25   -
26 22 static std::vector<std::string> name_keys = {
27 23 "/UF", "/F", "/Unix", "/DOS", "/Mac"};
28 24  
... ...
libqpdf/QPDFFormFieldObjectHelper.cc
... ... @@ -8,14 +8,6 @@
8 8 #include <qpdf/QUtil.hh>
9 9 #include <stdlib.h>
10 10  
11   -QPDFFormFieldObjectHelper::Members::~Members()
12   -{
13   -}
14   -
15   -QPDFFormFieldObjectHelper::Members::Members()
16   -{
17   -}
18   -
19 11 QPDFFormFieldObjectHelper::QPDFFormFieldObjectHelper(QPDFObjectHandle oh) :
20 12 QPDFObjectHelper(oh),
21 13 m(new Members())
... ... @@ -525,9 +517,7 @@ class ValueSetter: public QPDFObjectHandle::TokenFilter
525 517 std::vector<std::string> const& opt,
526 518 double tf,
527 519 QPDFObjectHandle::Rectangle const& bbox);
528   - virtual ~ValueSetter()
529   - {
530   - }
  520 + virtual ~ValueSetter() = default;
531 521 virtual void handleToken(QPDFTokenizer::Token const&);
532 522 virtual void handleEOF();
533 523 void writeAppearance();
... ...
libqpdf/QPDFJob.cc
... ... @@ -46,9 +46,7 @@ namespace
46 46 size_t oi_min_height,
47 47 size_t oi_min_area,
48 48 QPDFObjectHandle& image);
49   - virtual ~ImageOptimizer()
50   - {
51   - }
  49 + virtual ~ImageOptimizer() = default;
52 50 virtual void
53 51 provideStreamData(int objid, int generation, Pipeline* pipeline);
54 52 std::shared_ptr<Pipeline>
... ... @@ -66,9 +64,7 @@ namespace
66 64 class DiscardContents: public QPDFObjectHandle::ParserCallbacks
67 65 {
68 66 public:
69   - virtual ~DiscardContents()
70   - {
71   - }
  67 + virtual ~DiscardContents() = default;
72 68 virtual void
73 69 handleObject(QPDFObjectHandle)
74 70 {
... ... @@ -103,10 +99,7 @@ namespace
103 99 filename(filename)
104 100 {
105 101 }
106   - virtual ~ProgressReporter()
107   - {
108   - }
109   -
  102 + virtual ~ProgressReporter() = default;
110 103 virtual void reportProgress(int);
111 104  
112 105 private:
... ...
libqpdf/QPDFNameTreeObjectHelper.cc
... ... @@ -31,10 +31,6 @@ class NameTreeDetails: public NNTreeDetails
31 31  
32 32 static NameTreeDetails name_tree_details;
33 33  
34   -QPDFNameTreeObjectHelper::Members::~Members()
35   -{
36   -}
37   -
38 34 QPDFNameTreeObjectHelper::Members::Members(
39 35 QPDFObjectHandle& oh, QPDF* q, bool auto_repair) :
40 36 impl(std::make_shared<NNTreeImpl>(name_tree_details, q, oh, auto_repair))
... ... @@ -54,10 +50,6 @@ QPDFNameTreeObjectHelper::QPDFNameTreeObjectHelper(QPDFObjectHandle oh) :
54 50 {
55 51 }
56 52  
57   -QPDFNameTreeObjectHelper::~QPDFNameTreeObjectHelper()
58   -{
59   -}
60   -
61 53 QPDFNameTreeObjectHelper
62 54 QPDFNameTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair)
63 55 {
... ...
libqpdf/QPDFNumberTreeObjectHelper.cc
... ... @@ -32,10 +32,6 @@ class NumberTreeDetails: public NNTreeDetails
32 32  
33 33 static NumberTreeDetails number_tree_details;
34 34  
35   -QPDFNumberTreeObjectHelper::Members::~Members()
36   -{
37   -}
38   -
39 35 QPDFNumberTreeObjectHelper::Members::Members(
40 36 QPDFObjectHandle& oh, QPDF* q, bool auto_repair) :
41 37 impl(std::make_shared<NNTreeImpl>(number_tree_details, q, oh, auto_repair))
... ...
libqpdf/QPDFObjectHandle.cc
... ... @@ -41,6 +41,12 @@ QPDFObjectHandle::StreamDataProvider::StreamDataProvider(bool supports_retry) :
41 41 {
42 42 }
43 43  
  44 +QPDFObjectHandle::StreamDataProvider::~StreamDataProvider()
  45 +{
  46 + // Must be explicit and not inline -- see QPDF_DLL_CLASS in
  47 + // README-maintainer
  48 +}
  49 +
44 50 void
45 51 QPDFObjectHandle::StreamDataProvider::provideStreamData(
46 52 int objid, int generation, Pipeline* pipeline)
... ... @@ -77,9 +83,7 @@ class CoalesceProvider: public QPDFObjectHandle::StreamDataProvider
77 83 old_contents(old_contents)
78 84 {
79 85 }
80   - virtual ~CoalesceProvider()
81   - {
82   - }
  86 + virtual ~CoalesceProvider() = default;
83 87 virtual void
84 88 provideStreamData(int objid, int generation, Pipeline* pipeline);
85 89  
... ...
libqpdf/QPDFOutlineDocumentHelper.cc
... ... @@ -2,14 +2,6 @@
2 2  
3 3 #include <qpdf/QTC.hh>
4 4  
5   -QPDFOutlineDocumentHelper::Members::~Members()
6   -{
7   -}
8   -
9   -QPDFOutlineDocumentHelper::Members::Members()
10   -{
11   -}
12   -
13 5 QPDFOutlineDocumentHelper::QPDFOutlineDocumentHelper(QPDF& qpdf) :
14 6 QPDFDocumentHelper(qpdf),
15 7 m(new Members())
... ... @@ -36,10 +28,6 @@ QPDFOutlineDocumentHelper::QPDFOutlineDocumentHelper(QPDF&amp; qpdf) :
36 28 }
37 29 }
38 30  
39   -QPDFOutlineDocumentHelper::~QPDFOutlineDocumentHelper()
40   -{
41   -}
42   -
43 31 bool
44 32 QPDFOutlineDocumentHelper::hasOutlines()
45 33 {
... ...
libqpdf/QPDFOutlineObjectHelper.cc
... ... @@ -3,10 +3,6 @@
3 3 #include <qpdf/QPDFOutlineDocumentHelper.hh>
4 4 #include <qpdf/QTC.hh>
5 5  
6   -QPDFOutlineObjectHelper::Members::~Members()
7   -{
8   -}
9   -
10 6 QPDFOutlineObjectHelper::Members::Members(QPDFOutlineDocumentHelper& dh) :
11 7 dh(dh)
12 8 {
... ...
libqpdf/QPDFPageDocumentHelper.cc
... ... @@ -4,14 +4,6 @@
4 4 #include <qpdf/QTC.hh>
5 5 #include <qpdf/QUtil.hh>
6 6  
7   -QPDFPageDocumentHelper::Members::~Members()
8   -{
9   -}
10   -
11   -QPDFPageDocumentHelper::Members::Members()
12   -{
13   -}
14   -
15 7 QPDFPageDocumentHelper::QPDFPageDocumentHelper(QPDF& qpdf) :
16 8 QPDFDocumentHelper(qpdf)
17 9 {
... ...
libqpdf/QPDFPageLabelDocumentHelper.cc
... ... @@ -2,14 +2,6 @@
2 2  
3 3 #include <qpdf/QTC.hh>
4 4  
5   -QPDFPageLabelDocumentHelper::Members::~Members()
6   -{
7   -}
8   -
9   -QPDFPageLabelDocumentHelper::Members::Members()
10   -{
11   -}
12   -
13 5 QPDFPageLabelDocumentHelper::QPDFPageLabelDocumentHelper(QPDF& qpdf) :
14 6 QPDFDocumentHelper(qpdf),
15 7 m(new Members())
... ...
libqpdf/QPDFPageObjectHelper.cc
... ... @@ -18,9 +18,7 @@ class ContentProvider: public QPDFObjectHandle::StreamDataProvider
18 18 from_page(from_page)
19 19 {
20 20 }
21   - virtual ~ContentProvider()
22   - {
23   - }
  21 + virtual ~ContentProvider() = default;
24 22 virtual void
25 23 provideStreamData(int objid, int generation, Pipeline* pipeline);
26 24  
... ... @@ -45,9 +43,7 @@ class InlineImageTracker: public QPDFObjectHandle::TokenFilter
45 43 {
46 44 public:
47 45 InlineImageTracker(QPDF*, size_t min_size, QPDFObjectHandle resources);
48   - virtual ~InlineImageTracker()
49   - {
50   - }
  46 + virtual ~InlineImageTracker() = default;
51 47 virtual void handleToken(QPDFTokenizer::Token const&);
52 48 QPDFObjectHandle convertIIDict(QPDFObjectHandle odict);
53 49  
... ... @@ -230,14 +226,6 @@ InlineImageTracker::handleToken(QPDFTokenizer::Token const&amp; token)
230 226 }
231 227 }
232 228  
233   -QPDFPageObjectHelper::Members::~Members()
234   -{
235   -}
236   -
237   -QPDFPageObjectHelper::Members::Members()
238   -{
239   -}
240   -
241 229 QPDFPageObjectHelper::QPDFPageObjectHelper(QPDFObjectHandle oh) :
242 230 QPDFObjectHelper(oh)
243 231 {
... ...
libqpdf/QPDFSystemError.cc
... ... @@ -11,10 +11,6 @@ QPDFSystemError::QPDFSystemError(
11 11 {
12 12 }
13 13  
14   -QPDFSystemError::~QPDFSystemError() noexcept
15   -{
16   -}
17   -
18 14 std::string
19 15 QPDFSystemError::createWhat(std::string const& description, int system_errno)
20 16 {
... ...
libqpdf/QPDFTokenizer.cc
... ... @@ -29,9 +29,7 @@ class QPDFWordTokenFinder: public InputSource::Finder
29 29 str(str)
30 30 {
31 31 }
32   - virtual ~QPDFWordTokenFinder()
33   - {
34   - }
  32 + virtual ~QPDFWordTokenFinder() = default;
35 33 virtual bool check();
36 34  
37 35 private:
... ... @@ -96,10 +94,6 @@ QPDFTokenizer::Members::reset()
96 94 last_char_was_cr = false;
97 95 }
98 96  
99   -QPDFTokenizer::Members::~Members()
100   -{
101   -}
102   -
103 97 QPDFTokenizer::Token::Token(token_type_e type, std::string const& value) :
104 98 type(type),
105 99 value(value),
... ...
libqpdf/QPDFWriter.cc
... ... @@ -100,10 +100,6 @@ QPDFWriter::QPDFWriter(
100 100 setOutputFile(description, file, close_file);
101 101 }
102 102  
103   -QPDFWriter::~QPDFWriter()
104   -{
105   -}
106   -
107 103 void
108 104 QPDFWriter::setOutputFilename(char const* filename)
109 105 {
... ...
libqpdf/QPDF_Array.cc
... ... @@ -14,10 +14,6 @@ QPDF_Array::QPDF_Array(SparseOHArray const&amp; items) :
14 14 {
15 15 }
16 16  
17   -QPDF_Array::~QPDF_Array()
18   -{
19   -}
20   -
21 17 void
22 18 QPDF_Array::releaseResolved()
23 19 {
... ...
libqpdf/QPDF_Bool.cc
... ... @@ -5,10 +5,6 @@ QPDF_Bool::QPDF_Bool(bool val) :
5 5 {
6 6 }
7 7  
8   -QPDF_Bool::~QPDF_Bool()
9   -{
10   -}
11   -
12 8 std::string
13 9 QPDF_Bool::unparse()
14 10 {
... ...
libqpdf/QPDF_Dictionary.cc
... ... @@ -9,10 +9,6 @@ QPDF_Dictionary::QPDF_Dictionary(
9 9 {
10 10 }
11 11  
12   -QPDF_Dictionary::~QPDF_Dictionary()
13   -{
14   -}
15   -
16 12 void
17 13 QPDF_Dictionary::releaseResolved()
18 14 {
... ...
libqpdf/QPDF_InlineImage.cc
... ... @@ -7,10 +7,6 @@ QPDF_InlineImage::QPDF_InlineImage(std::string const&amp; val) :
7 7 {
8 8 }
9 9  
10   -QPDF_InlineImage::~QPDF_InlineImage()
11   -{
12   -}
13   -
14 10 std::string
15 11 QPDF_InlineImage::unparse()
16 12 {
... ...