diff options
-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 { |