aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFPageObjectHelper.cc
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2022-08-06 20:52:07 +0200
committerm-holger <m-holger@kubitscheck.org>2022-08-28 23:15:59 +0200
commitc53d54b13dc6ad369646a09c64d392549effac38 (patch)
treec26a8d6477b5a175f483affed2782a969d39142d /libqpdf/QPDFPageObjectHelper.cc
parentcef6425bcac678157f58e9eafabb7e63c5831d18 (diff)
downloadqpdf-c53d54b13dc6ad369646a09c64d392549effac38.tar.zst
Add optional parameter allow_nullptr to QPDFObjectHandle::getOwningQPDF
Also, inline method and add optional parameter error_msg.
Diffstat (limited to 'libqpdf/QPDFPageObjectHelper.cc')
-rw-r--r--libqpdf/QPDFPageObjectHelper.cc45
1 files changed, 19 insertions, 26 deletions
diff --git a/libqpdf/QPDFPageObjectHelper.cc b/libqpdf/QPDFPageObjectHelper.cc
index 9ad75cf8..23a54231 100644
--- a/libqpdf/QPDFPageObjectHelper.cc
+++ b/libqpdf/QPDFPageObjectHelper.cc
@@ -432,7 +432,8 @@ QPDFPageObjectHelper::externalizeInlineImages(size_t min_size, bool shallow)
this->oh.replaceKey(
"/Contents",
QPDFObjectHandle::newStream(
- this->oh.getOwningQPDF(), b.getBufferSharedPointer()));
+ this->oh.getOwningQPDF(false),
+ b.getBufferSharedPointer()));
}
}
} else {
@@ -683,11 +684,10 @@ QPDFPageObjectHelper::removeUnreferencedResources()
QPDFPageObjectHelper
QPDFPageObjectHelper::shallowCopyPage()
{
- QPDF* qpdf = this->oh.getOwningQPDF();
- if (!qpdf) {
- throw std::runtime_error("QPDFPageObjectHelper::shallowCopyPage"
- " called with a direct object");
- }
+ QPDF* qpdf = this->oh.getOwningQPDF(
+ false,
+ "QPDFPageObjectHelper::shallowCopyPage called with a direct object");
+
QPDFObjectHandle new_page = this->oh.shallowCopy();
return QPDFPageObjectHelper(qpdf->makeIndirectObject(new_page));
}
@@ -743,11 +743,10 @@ QPDFPageObjectHelper::getMatrixForTransformations(bool invert)
QPDFObjectHandle
QPDFPageObjectHelper::getFormXObjectForPage(bool handle_transformations)
{
- QPDF* qpdf = this->oh.getOwningQPDF();
- if (!qpdf) {
- throw std::runtime_error("QPDFPageObjectHelper::getFormXObjectForPage"
- " called with a direct object");
- }
+ QPDF* qpdf = this->oh.getOwningQPDF(
+ false,
+ "QPDFPageObjectHelper::getFormXObjectForPage called with a direct "
+ "object");
QPDFObjectHandle result = QPDFObjectHandle::newStream(qpdf);
QPDFObjectHandle newdict = result.getDict();
newdict.replaceKey("/Type", QPDFObjectHandle::newName("/XObject"));
@@ -917,11 +916,9 @@ QPDFPageObjectHelper::placeFormXObject(
void
QPDFPageObjectHelper::flattenRotation(QPDFAcroFormDocumentHelper* afdh)
{
- QPDF* qpdf = this->oh.getOwningQPDF();
- if (!qpdf) {
- throw std::runtime_error("QPDFPageObjectHelper::flattenRotation"
- " called with a direct object");
- }
+ QPDF* qpdf = this->oh.getOwningQPDF(
+ false,
+ "QPDFPageObjectHelper::flattenRotation called with a direct object");
auto rotate_oh = this->oh.getKey("/Rotate");
int rotate = 0;
@@ -1066,16 +1063,12 @@ QPDFPageObjectHelper::copyAnnotations(
return;
}
- QPDF* from_qpdf = from_page.getObjectHandle().getOwningQPDF();
- if (!from_qpdf) {
- throw std::runtime_error("QPDFPageObjectHelper::copyAnnotations:"
- " from page is a direct object");
- }
- QPDF* this_qpdf = this->oh.getOwningQPDF();
- if (!this_qpdf) {
- throw std::runtime_error("QPDFPageObjectHelper::copyAnnotations:"
- " this page is a direct object");
- }
+ QPDF* from_qpdf = from_page.getObjectHandle().getOwningQPDF(
+ false,
+ "QPDFPageObjectHelper::copyAnnotations: from page is a direct object");
+ QPDF* this_qpdf = this->oh.getOwningQPDF(
+ false,
+ "QPDFPageObjectHelper::copyAnnotations: this page is a direct object");
std::vector<QPDFObjectHandle> new_annots;
std::vector<QPDFObjectHandle> new_fields;