Commit d33e5a9ccd9daface1e5cc9dc744d86df674ddfe

Authored by m-holger
1 parent 9a6cfda2

Refactor QPDFFormFieldObjectHelper: simplify Members handling by using std::shar…

…ed_ptr and forward declaration.
include/qpdf/QPDFFormFieldObjectHelper.hh
@@ -193,17 +193,7 @@ class QPDFFormFieldObjectHelper: public QPDFObjectHelper @@ -193,17 +193,7 @@ class QPDFFormFieldObjectHelper: public QPDFObjectHelper
193 void generateTextAppearance(QPDFAnnotationObjectHelper&); 193 void generateTextAppearance(QPDFAnnotationObjectHelper&);
194 QPDFObjectHandle getFontFromResource(QPDFObjectHandle resources, std::string const& font_name); 194 QPDFObjectHandle getFontFromResource(QPDFObjectHandle resources, std::string const& font_name);
195 195
196 - class Members  
197 - {  
198 - friend class QPDFFormFieldObjectHelper;  
199 -  
200 - public:  
201 - ~Members() = default;  
202 -  
203 - private:  
204 - Members() = default;  
205 - Members(Members const&) = delete;  
206 - }; 196 + class Members;
207 197
208 std::shared_ptr<Members> m; 198 std::shared_ptr<Members> m;
209 }; 199 };
libqpdf/QPDFFormFieldObjectHelper.cc
@@ -10,17 +10,23 @@ @@ -10,17 +10,23 @@
10 #include <qpdf/QUtil.hh> 10 #include <qpdf/QUtil.hh>
11 #include <cstdlib> 11 #include <cstdlib>
12 12
  13 +#include <memory>
  14 +
13 using namespace qpdf; 15 using namespace qpdf;
14 16
  17 +class QPDFFormFieldObjectHelper::Members
  18 +{
  19 +};
  20 +
15 QPDFFormFieldObjectHelper::QPDFFormFieldObjectHelper(QPDFObjectHandle oh) : 21 QPDFFormFieldObjectHelper::QPDFFormFieldObjectHelper(QPDFObjectHandle oh) :
16 QPDFObjectHelper(oh), 22 QPDFObjectHelper(oh),
17 - m(new Members()) 23 + m(std::make_shared<Members>())
18 { 24 {
19 } 25 }
20 26
21 QPDFFormFieldObjectHelper::QPDFFormFieldObjectHelper() : 27 QPDFFormFieldObjectHelper::QPDFFormFieldObjectHelper() :
22 QPDFObjectHelper(QPDFObjectHandle::newNull()), 28 QPDFObjectHelper(QPDFObjectHandle::newNull()),
23 - m(new Members()) 29 + m(std::make_shared<Members>())
24 { 30 {
25 } 31 }
26 32