diff options
author | Jay Berkenbilt <ejb@ql.org> | 2010-06-05 23:00:05 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2010-06-05 23:00:05 +0200 |
commit | bf75e208e930a757c4d66e92e5594f422da8f935 (patch) | |
tree | 60dfd436192d43125e51c7fad2d0670ab2476591 | |
parent | eef71544123cc56c08e89be34380a867af24a0a0 (diff) | |
download | qpdf-bf75e208e930a757c4d66e92e5594f422da8f935.tar.zst |
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
-rw-r--r-- | libqpdf/QPDF_optimization.cc | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/libqpdf/QPDF_optimization.cc b/libqpdf/QPDF_optimization.cc index 872da859..6102d4d7 100644 --- a/libqpdf/QPDF_optimization.cc +++ b/libqpdf/QPDF_optimization.cc @@ -104,9 +104,12 @@ QPDF::flattenScalarReferences() QPDFObjectHandle oh = node.getArrayItem(i); if (oh.isScalar()) { - QTC::TC("qpdf", "QPDF opt flatten array scalar"); - oh.makeDirect(); - node.setArrayItem(i, oh); + if (oh.isIndirect()) + { + QTC::TC("qpdf", "QPDF opt flatten array scalar"); + oh.makeDirect(); + node.setArrayItem(i, oh); + } } else { @@ -136,9 +139,12 @@ QPDF::flattenScalarReferences() } else if (oh.isScalar()) { - QTC::TC("qpdf", "QPDF opt flatten dict scalar"); - oh.makeDirect(); - dict.replaceKey(key, oh); + if (oh.isIndirect()) + { + QTC::TC("qpdf", "QPDF opt flatten dict scalar"); + oh.makeDirect(); + dict.replaceKey(key, oh); + } } else { |