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,7 +24,6 @@
24 24
25 #include <qpdf/DLL.h> 25 #include <qpdf/DLL.h>
26 #include <qpdf/Types.h> 26 #include <qpdf/Types.h>
27 -#include <qpdf/PointerHolder.hh>  
28 #include <qpdf/JSON.hh> 27 #include <qpdf/JSON.hh>
29 28
30 #include <string> 29 #include <string>
@@ -100,21 +99,12 @@ class QPDFObject @@ -100,21 +99,12 @@ class QPDFObject
100 virtual void releaseResolved() {} 99 virtual void releaseResolved() {}
101 100
102 private: 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 #endif // QPDFOBJECT_HH 110 #endif // QPDFOBJECT_HH
libqpdf/QPDFObject.cc
1 #include <qpdf/QPDFObject.hh> 1 #include <qpdf/QPDFObject.hh>
2 2
3 -QPDFObject::Members::Members() : 3 +QPDFObject::QPDFObject() :
4 owning_qpdf(0), 4 owning_qpdf(0),
5 parsed_offset(-1) 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 void 9 void
19 QPDFObject::setDescription(QPDF* qpdf, std::string const& description) 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 bool 16 bool
26 QPDFObject::getDescription(QPDF*& qpdf, std::string& description) 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 bool 24 bool
34 QPDFObject::hasDescription() 25 QPDFObject::hasDescription()
35 { 26 {
36 - return this->m->owning_qpdf != 0; 27 + return this->owning_qpdf != 0;
37 } 28 }
38 29
39 void 30 void
40 QPDFObject::setParsedOffset(qpdf_offset_t offset) 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 qpdf_offset_t 36 qpdf_offset_t
46 QPDFObject::getParsedOffset() 37 QPDFObject::getParsedOffset()
47 { 38 {
48 - return this->m->parsed_offset; 39 + return this->parsed_offset;
49 } 40 }