Commit 07afb668b14e4b71062b76b1c8fbfb1d88e1d425
1 parent
89f19b70
Performance: remove indirection through Members for QPDFObject
Showing
2 changed files
with
15 additions
and
34 deletions
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 | } |