From bf75e208e930a757c4d66e92e5594f422da8f935 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 5 Jun 2010 21:00:05 +0000 Subject: 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 --- libqpdf/QPDF_optimization.cc | 18 ++++++++++++------ 1 file 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 { -- cgit v1.2.3-54-g00ecf