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 | 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 | } | ... | ... |