diff options
-rw-r--r-- | include/qpdf/QPDFObjectHandle.hh | 6 | ||||
-rw-r--r-- | libqpdf/QPDFObjectHandle.cc | 28 |
2 files changed, 11 insertions, 23 deletions
diff --git a/include/qpdf/QPDFObjectHandle.hh b/include/qpdf/QPDFObjectHandle.hh index b186d4f8..4157015e 100644 --- a/include/qpdf/QPDFObjectHandle.hh +++ b/include/qpdf/QPDFObjectHandle.hh @@ -1634,11 +1634,7 @@ class QPDFObjectHandle bool first_level_only, bool stop_at_streams); void shallowCopyInternal1(QPDFObjectHandle& oh, bool first_level_only); - void copyObject2( - std::set<QPDFObjGen>& visited, - bool cross_indirect, - bool first_level_only, - bool stop_at_streams); + void copyObject2(std::set<QPDFObjGen>& visited, bool first_level_only); void shallowCopyInternal2(QPDFObjectHandle& oh, bool first_level_only); void copyObject( std::set<QPDFObjGen>& visited, diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 3938fcd2..a830fe4b 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -2315,22 +2315,16 @@ QPDFObjectHandle::shallowCopyInternal2( new_obj = QPDFObjectHandle(obj->copy(true)); std::set<QPDFObjGen> visited; - new_obj.copyObject2(visited, false, first_level_only, false); + new_obj.copyObject2(visited, first_level_only); } void QPDFObjectHandle::copyObject2( - std::set<QPDFObjGen>& visited, - bool cross_indirect, - bool first_level_only, - bool stop_at_streams) + std::set<QPDFObjGen>& visited, bool first_level_only) { assertInitialized(); if (isStream()) { - if (stop_at_streams) { - return; - } throw std::runtime_error( "attempt to make a stream into a direct object"); } @@ -2361,11 +2355,10 @@ QPDFObjectHandle::copyObject2( int n = array->getNItems(); for (int i = 0; i < n; ++i) { items.push_back(array->getItem(i)); - if ((!first_level_only) && - (cross_indirect || (!items.back().isIndirect()))) { - items.back().copyObject2( - visited, cross_indirect, first_level_only, stop_at_streams); - } + if ((!first_level_only) && !items.back().isIndirect()) + { + items.back().copyObject2(visited, first_level_only); + } } new_obj = QPDF_Array::create(items); } else if (isDictionary()) { @@ -2373,11 +2366,10 @@ QPDFObjectHandle::copyObject2( auto dict = asDictionary(); for (auto const& key: getKeys()) { items[key] = dict->getKey(key); - if ((!first_level_only) && - (cross_indirect || (!items[key].isIndirect()))) { - items[key].copyObject2( - visited, cross_indirect, first_level_only, stop_at_streams); - } + if ((!first_level_only) && !items[key].isIndirect()) + { + items[key].copyObject2(visited, first_level_only); + } } new_obj = QPDF_Dictionary::create(items); } else { |