diff options
author | m-holger <m-holger@kubitscheck.org> | 2022-11-14 19:03:03 +0100 |
---|---|---|
committer | Jay Berkenbilt <jberkenbilt@users.noreply.github.com> | 2022-11-20 18:07:22 +0100 |
commit | d7b85252356da91293d9c11428a5a1c797c5dd0d (patch) | |
tree | 3e6a62eeee00cf2b9bb320f3ee6878f4ca362316 | |
parent | 0289b21c3b4d4d32b665e793dbf354ea34a23818 (diff) | |
download | qpdf-d7b85252356da91293d9c11428a5a1c797c5dd0d.tar.zst |
Refactor QPDFObjectHandle::unsafeShallowCopy
-rw-r--r-- | include/qpdf/QPDFObjectHandle.hh | 1 | ||||
-rw-r--r-- | libqpdf/QPDFObjectHandle.cc | 17 |
2 files changed, 4 insertions, 14 deletions
diff --git a/include/qpdf/QPDFObjectHandle.hh b/include/qpdf/QPDFObjectHandle.hh index de9f51e9..24a3bead 100644 --- a/include/qpdf/QPDFObjectHandle.hh +++ b/include/qpdf/QPDFObjectHandle.hh @@ -1634,7 +1634,6 @@ class QPDFObjectHandle bool first_level_only, bool stop_at_streams); void shallowCopyInternal1(QPDFObjectHandle& oh, bool first_level_only); - void shallowCopyInternal2(QPDFObjectHandle& oh); void copyObject( std::set<QPDFObjGen>& visited, bool cross_indirect, diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 242e0fb2..9153e33f 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -2298,20 +2298,11 @@ QPDFObjectHandle::copyObject1( QPDFObjectHandle QPDFObjectHandle::unsafeShallowCopy() { - QPDFObjectHandle result; - shallowCopyInternal2(result); - return result; -} - -void -QPDFObjectHandle::shallowCopyInternal2(QPDFObjectHandle& new_obj) -{ - assertInitialized(); - - if (isStream()) { - throw std::runtime_error("attempt to make a shallow copy of a stream"); + if (!dereference()) { + throw std::logic_error("operation attempted on uninitialized " + "QPDFObjectHandle"); } - new_obj = QPDFObjectHandle(obj->copy(true)); + return QPDFObjectHandle(obj->copy(true)); } void |