aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDF.cc
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2022-08-02 20:13:29 +0200
committerm-holger <m-holger@kubitscheck.org>2022-09-01 01:10:04 +0200
commit114bffa0894d8bac7151201404cb6d8d62bd9b4a (patch)
tree33f050c5a9e6e1042c7201bea5fdfb0ae8cacdcd /libqpdf/QPDF.cc
parent2a2eebcaea2b27bc86390dac2ee27ad5620f5eda (diff)
downloadqpdf-114bffa0894d8bac7151201404cb6d8d62bd9b4a.tar.zst
Add private methods QPDFObjectHandle::asArray etc
Centralise casting of QPDFObjects and reduce repeated dereferencing.
Diffstat (limited to 'libqpdf/QPDF.cc')
-rw-r--r--libqpdf/QPDF.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc
index 191d98f3..22f62a8b 100644
--- a/libqpdf/QPDF.cc
+++ b/libqpdf/QPDF.cc
@@ -1420,8 +1420,7 @@ QPDF::fixDanglingReferences(bool force)
to_check.push_back(iter.second);
}
} else if (obj.isArray()) {
- QPDF_Array* arr = dynamic_cast<QPDF_Array*>(
- QPDFObjectHandle::ObjAccessor::getObject(obj).get());
+ auto arr = QPDFObjectHandle::ObjAccessor::asArray(obj);
arr->addExplicitElementsToList(to_check);
}
for (auto sub: to_check) {
@@ -2468,12 +2467,12 @@ QPDF::copyStreamData(QPDFObjectHandle result, QPDFObjectHandle foreign)
QPDFObjGen local_og(result.getObjGen());
// Copy information from the foreign stream so we can pipe its
// data later without keeping the original QPDF object around.
+
QPDF* foreign_stream_qpdf = foreign.getOwningQPDF(
false, "unable to retrieve owning qpdf from foreign stream");
- QPDF_Stream* stream = dynamic_cast<QPDF_Stream*>(
- QPDFObjectHandle::ObjAccessor::getObject(foreign).get());
- if (!stream) {
+ auto stream = QPDFObjectHandle::ObjAccessor::asStream(foreign);
+ if (stream == nullptr) {
throw std::logic_error("unable to retrieve underlying"
" stream object from foreign stream");
}