Commit bf75e208e930a757c4d66e92e5594f422da8f935
1 parent
eef71544
eliminate extraneous allocations by not calling makeDirect when we
know an object is already direct git-svn-id: svn+q:///qpdf/trunk@972 71b93d88-0707-0410-a8cf-f5a4172ac649
Showing
1 changed file
with
12 additions
and
6 deletions
libqpdf/QPDF_optimization.cc
| ... | ... | @@ -104,9 +104,12 @@ QPDF::flattenScalarReferences() |
| 104 | 104 | QPDFObjectHandle oh = node.getArrayItem(i); |
| 105 | 105 | if (oh.isScalar()) |
| 106 | 106 | { |
| 107 | - QTC::TC("qpdf", "QPDF opt flatten array scalar"); | |
| 108 | - oh.makeDirect(); | |
| 109 | - node.setArrayItem(i, oh); | |
| 107 | + if (oh.isIndirect()) | |
| 108 | + { | |
| 109 | + QTC::TC("qpdf", "QPDF opt flatten array scalar"); | |
| 110 | + oh.makeDirect(); | |
| 111 | + node.setArrayItem(i, oh); | |
| 112 | + } | |
| 110 | 113 | } |
| 111 | 114 | else |
| 112 | 115 | { |
| ... | ... | @@ -136,9 +139,12 @@ QPDF::flattenScalarReferences() |
| 136 | 139 | } |
| 137 | 140 | else if (oh.isScalar()) |
| 138 | 141 | { |
| 139 | - QTC::TC("qpdf", "QPDF opt flatten dict scalar"); | |
| 140 | - oh.makeDirect(); | |
| 141 | - dict.replaceKey(key, oh); | |
| 142 | + if (oh.isIndirect()) | |
| 143 | + { | |
| 144 | + QTC::TC("qpdf", "QPDF opt flatten dict scalar"); | |
| 145 | + oh.makeDirect(); | |
| 146 | + dict.replaceKey(key, oh); | |
| 147 | + } | |
| 142 | 148 | } |
| 143 | 149 | else |
| 144 | 150 | { | ... | ... |