summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Astals Cid <aacid@kde.org>2017-05-12 23:10:53 +0200
committerAlbert Astals Cid <aacid@kde.org>2017-05-12 23:10:53 +0200
commit0d7aa8c8aa491e005f78b019eff78f400764a61c (patch)
treef5f150cfb30dc4118fae90ce34c2960e8ade1ee8
parentb1f4e35fa2da8909dee07529ce1dd9445639793b (diff)
Make Array incRef/decRef private
-rw-r--r--poppler/Array.h9
-rw-r--r--poppler/PDFDoc.cc14
2 files changed, 12 insertions, 11 deletions
diff --git a/poppler/Array.h b/poppler/Array.h
index bc522a00..8043c830 100644
--- a/poppler/Array.h
+++ b/poppler/Array.h
@@ -49,10 +49,6 @@ public:
// Destructor.
~Array();
- // Reference counting.
- int incRef();
- int decRef();
-
// Get number of elements.
int getLength() { return length; }
@@ -72,6 +68,11 @@ public:
GBool getString(int i, GooString *string);
private:
+ friend class Object; // for incRef/decRef
+
+ // Reference counting.
+ int incRef();
+ int decRef();
XRef *xref; // the xref table for this PDF file
Object *elems; // array of elements
diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc
index 5f640790..16981b93 100644
--- a/poppler/PDFDoc.cc
+++ b/poppler/PDFDoc.cc
@@ -1567,20 +1567,20 @@ void PDFDoc::replacePageDict(int pageNo, int rotate,
mediaBoxArray->add(Object(mediaBox->y1));
mediaBoxArray->add(Object(mediaBox->x2));
mediaBoxArray->add(Object(mediaBox->y2));
- pageDict->add(copyString("MediaBox"), Object(mediaBoxArray));
+ Object mediaBoxObject(mediaBoxArray);
+ Object trimBoxObject = mediaBoxObject.copy();
+ pageDict->add(copyString("MediaBox"), std::move(mediaBoxObject));
if (cropBox != NULL) {
Array *cropBoxArray = new Array(getXRef());
cropBoxArray->add(Object(cropBox->x1));
cropBoxArray->add(Object(cropBox->y1));
cropBoxArray->add(Object(cropBox->x2));
cropBoxArray->add(Object(cropBox->y2));
- pageDict->add(copyString("CropBox"), Object(cropBoxArray));
- cropBoxArray->incRef();
- pageDict->add(copyString("TrimBox"), Object(cropBoxArray));
- } else {
- mediaBoxArray->incRef();
- pageDict->add(copyString("TrimBox"), Object(mediaBoxArray));
+ Object cropBoxObject(cropBoxArray);
+ trimBoxObject = cropBoxObject.copy();
+ pageDict->add(copyString("CropBox"), std::move(cropBoxObject));
}
+ pageDict->add(copyString("TrimBox"), std::move(trimBoxObject));
pageDict->add(copyString("Rotate"), Object(rotate));
getXRef()->setModifiedObject(&page, *refPage);
}