Commit 07afb668b14e4b71062b76b1c8fbfb1d88e1d425

Authored by Jay Berkenbilt
1 parent 89f19b70

Performance: remove indirection through Members for QPDFObject

include/qpdf/QPDFObject.hh
... ... @@ -24,7 +24,6 @@
24 24  
25 25 #include <qpdf/DLL.h>
26 26 #include <qpdf/Types.h>
27   -#include <qpdf/PointerHolder.hh>
28 27 #include <qpdf/JSON.hh>
29 28  
30 29 #include <string>
... ... @@ -100,21 +99,12 @@ class QPDFObject
100 99 virtual void releaseResolved() {}
101 100  
102 101 private:
103   - QPDFObject(QPDFObject const&);
104   - QPDFObject& operator=(QPDFObject const&);
105   - class Members
106   - {
107   - friend class QPDFObject;
108   - public:
109   - QPDF_DLL
110   - ~Members();
111   - private:
112   - Members();
113   - QPDF* owning_qpdf;
114   - std::string object_description;
115   - qpdf_offset_t parsed_offset;
116   - };
117   - PointerHolder<Members> m;
  102 + QPDFObject(QPDFObject const&) = delete;
  103 + QPDFObject& operator=(QPDFObject const&) = delete;
  104 +
  105 + QPDF* owning_qpdf;
  106 + std::string object_description;
  107 + qpdf_offset_t parsed_offset;
118 108 };
119 109  
120 110 #endif // QPDFOBJECT_HH
... ...
libqpdf/QPDFObject.cc
1 1 #include <qpdf/QPDFObject.hh>
2 2  
3   -QPDFObject::Members::Members() :
  3 +QPDFObject::QPDFObject() :
4 4 owning_qpdf(0),
5 5 parsed_offset(-1)
6 6 {
7 7 }
8 8  
9   -QPDFObject::Members::~Members()
10   -{
11   -}
12   -
13   -QPDFObject::QPDFObject() :
14   - m(new Members)
15   -{
16   -}
17   -
18 9 void
19 10 QPDFObject::setDescription(QPDF* qpdf, std::string const& description)
20 11 {
21   - this->m->owning_qpdf = qpdf;
22   - this->m->object_description = description;
  12 + this->owning_qpdf = qpdf;
  13 + this->object_description = description;
23 14 }
24 15  
25 16 bool
26 17 QPDFObject::getDescription(QPDF*& qpdf, std::string& description)
27 18 {
28   - qpdf = this->m->owning_qpdf;
29   - description = this->m->object_description;
30   - return this->m->owning_qpdf != 0;
  19 + qpdf = this->owning_qpdf;
  20 + description = this->object_description;
  21 + return this->owning_qpdf != 0;
31 22 }
32 23  
33 24 bool
34 25 QPDFObject::hasDescription()
35 26 {
36   - return this->m->owning_qpdf != 0;
  27 + return this->owning_qpdf != 0;
37 28 }
38 29  
39 30 void
40 31 QPDFObject::setParsedOffset(qpdf_offset_t offset)
41 32 {
42   - this->m->parsed_offset = offset;
  33 + this->parsed_offset = offset;
43 34 }
44 35  
45 36 qpdf_offset_t
46 37 QPDFObject::getParsedOffset()
47 38 {
48   - return this->m->parsed_offset;
  39 + return this->parsed_offset;
49 40 }
... ...