Commit 15e8d3a763e066e1a8d2bd54cc1e2117a54f7d7c

Authored by m-holger
Committed by Jay Berkenbilt
1 parent 0827b109

Remove redundant parameter first_level_only from QPDFObjectHandle::shallowCopyIn…

…ternal2 and copyObject2
include/qpdf/QPDFObjectHandle.hh
... ... @@ -1634,8 +1634,8 @@ class QPDFObjectHandle
1634 1634 bool first_level_only,
1635 1635 bool stop_at_streams);
1636 1636 void shallowCopyInternal1(QPDFObjectHandle& oh, bool first_level_only);
1637   - void copyObject2(std::set<QPDFObjGen>& visited, bool first_level_only);
1638   - void shallowCopyInternal2(QPDFObjectHandle& oh, bool first_level_only);
  1637 + void copyObject2(std::set<QPDFObjGen>& visited);
  1638 + void shallowCopyInternal2(QPDFObjectHandle& oh);
1639 1639 void copyObject(
1640 1640 std::set<QPDFObjGen>& visited,
1641 1641 bool cross_indirect,
... ...
libqpdf/QPDFObjectHandle.cc
... ... @@ -2299,13 +2299,12 @@ QPDFObjectHandle
2299 2299 QPDFObjectHandle::unsafeShallowCopy()
2300 2300 {
2301 2301 QPDFObjectHandle result;
2302   - shallowCopyInternal2(result, true);
  2302 + shallowCopyInternal2(result);
2303 2303 return result;
2304 2304 }
2305 2305  
2306 2306 void
2307   -QPDFObjectHandle::shallowCopyInternal2(
2308   - QPDFObjectHandle& new_obj, bool first_level_only)
  2307 +QPDFObjectHandle::shallowCopyInternal2(QPDFObjectHandle& new_obj)
2309 2308 {
2310 2309 assertInitialized();
2311 2310  
... ... @@ -2315,16 +2314,16 @@ QPDFObjectHandle::shallowCopyInternal2(
2315 2314 new_obj = QPDFObjectHandle(obj->copy(true));
2316 2315  
2317 2316 std::set<QPDFObjGen> visited;
2318   - new_obj.copyObject2(visited, first_level_only);
  2317 + new_obj.copyObject2(visited);
2319 2318 }
2320 2319  
2321 2320 void
2322   -QPDFObjectHandle::copyObject2(
2323   - std::set<QPDFObjGen>& visited, bool first_level_only)
  2321 +QPDFObjectHandle::copyObject2(std::set<QPDFObjGen>& visited)
2324 2322 {
2325 2323 assertInitialized();
2326 2324  
2327 2325 if (isStream()) {
  2326 + // same as obj->copy(true)
2328 2327 throw std::runtime_error(
2329 2328 "attempt to make a stream into a direct object");
2330 2329 }
... ... @@ -2340,6 +2339,7 @@ QPDFObjectHandle::copyObject2(
2340 2339 }
2341 2340  
2342 2341 if (isReserved()) {
  2342 + // same as obj->copy(true)
2343 2343 throw std::logic_error("QPDFObjectHandle: attempting to make a"
2344 2344 " reserved object handle direct");
2345 2345 }
... ... @@ -2350,26 +2350,20 @@ QPDFObjectHandle::copyObject2(
2350 2350 isString()) {
2351 2351 new_obj = obj->copy(true);
2352 2352 } else if (isArray()) {
  2353 + // same as obj->copy(true)
2353 2354 std::vector<QPDFObjectHandle> items;
2354 2355 auto array = asArray();
2355 2356 int n = array->getNItems();
2356 2357 for (int i = 0; i < n; ++i) {
2357 2358 items.push_back(array->getItem(i));
2358   - if ((!first_level_only) && !items.back().isIndirect())
2359   - {
2360   - items.back().copyObject2(visited, first_level_only);
2361   - }
2362 2359 }
2363 2360 new_obj = QPDF_Array::create(items);
2364 2361 } else if (isDictionary()) {
  2362 + // same as obj->copy(true)
2365 2363 std::map<std::string, QPDFObjectHandle> items;
2366 2364 auto dict = asDictionary();
2367 2365 for (auto const& key: getKeys()) {
2368 2366 items[key] = dict->getKey(key);
2369   - if ((!first_level_only) && !items[key].isIndirect())
2370   - {
2371   - items[key].copyObject2(visited, first_level_only);
2372   - }
2373 2367 }
2374 2368 new_obj = QPDF_Dictionary::create(items);
2375 2369 } else {
... ...