Commit 97de12343b908d937f4bb0562cd739896ce66d34

Authored by Jay Berkenbilt
1 parent cc755e37

Performance: remove Members indirection for Pipeline

include/qpdf/Pipeline.hh
... ... @@ -78,26 +78,10 @@ class QPDF_DLL_CLASS Pipeline
78 78 std::string identifier;
79 79  
80 80 private:
81   - // Do not implement copy or assign
82   - Pipeline(Pipeline const&);
83   - Pipeline& operator=(Pipeline const&);
  81 + Pipeline(Pipeline const&) = delete;
  82 + Pipeline& operator=(Pipeline const&) = delete;
84 83  
85   - class Members
86   - {
87   - friend class Pipeline;
88   -
89   - public:
90   - QPDF_DLL
91   - ~Members();
92   -
93   - private:
94   - Members(Pipeline* next);
95   - Members(Members const&);
96   -
97   - Pipeline* next;
98   - };
99   -
100   - PointerHolder<Members> m;
  84 + Pipeline* next;
101 85 };
102 86  
103 87 #endif // PIPELINE_HH
... ...
libqpdf/Pipeline.cc
1 1 #include <qpdf/Pipeline.hh>
2 2 #include <stdexcept>
3 3  
4   -Pipeline::Members::Members(Pipeline* next) :
5   - next(next)
6   -{
7   -}
8   -
9   -Pipeline::Members::~Members()
10   -{
11   -}
12   -
13 4 Pipeline::Pipeline(char const* identifier, Pipeline* next) :
14 5 identifier(identifier),
15   - m(new Members(next))
  6 + next(next)
16 7 {
17 8 }
18 9  
... ... @@ -23,13 +14,13 @@ Pipeline::~Pipeline()
23 14 Pipeline*
24 15 Pipeline::getNext(bool allow_null)
25 16 {
26   - if ((this->m->next == 0) && (! allow_null))
  17 + if ((this->next == 0) && (! allow_null))
27 18 {
28 19 throw std::logic_error(
29 20 this->identifier +
30 21 ": Pipeline::getNext() called on pipeline with no next");
31 22 }
32   - return this->m->next;
  23 + return this->next;
33 24 }
34 25  
35 26 std::string
... ...