[poppler] poppler/Annot.cc poppler/Form.cc poppler/GfxFont.cc poppler/Object.h poppler/Page.cc poppler/PDFDoc.cc poppler/PSOutputDev.cc poppler/XRef.cc qt5/src utils/pdfunite.cc

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sun Feb 10 15:45:02 UTC 2019


 poppler/Annot.cc            |   12 ++++++------
 poppler/Form.cc             |    2 +-
 poppler/GfxFont.cc          |    6 +++---
 poppler/Object.h            |    4 +++-
 poppler/PDFDoc.cc           |    2 +-
 poppler/PSOutputDev.cc      |    4 ++--
 poppler/Page.cc             |   12 ++++++------
 poppler/XRef.cc             |    4 ++--
 qt5/src/poppler-document.cc |    4 ++--
 utils/pdfunite.cc           |    4 ++--
 10 files changed, 28 insertions(+), 26 deletions(-)

New commits:
commit fc555c756becd50d75d87b820b695363030d9ab9
Author: Albert Astals Cid <aacid at kde.org>
Date:   Sun Feb 10 16:28:28 2019 +0100

    Object: Add constructor that takes a const Ref
    
    makes it easier to not have to unbox the Ref for no reason

diff --git a/poppler/Annot.cc b/poppler/Annot.cc
index 1750dc70..294aa7b1 100644
--- a/poppler/Annot.cc
+++ b/poppler/Annot.cc
@@ -15,7 +15,7 @@
 //
 // Copyright (C) 2006 Scott Turner <scotty1024 at mac.com>
 // Copyright (C) 2007, 2008 Julien Rebetez <julienr at svn.gnome.org>
-// Copyright (C) 2007-2013, 2015-2018 Albert Astals Cid <aacid at kde.org>
+// Copyright (C) 2007-2013, 2015-2019 Albert Astals Cid <aacid at kde.org>
 // Copyright (C) 2007-2013, 2018 Carlos Garcia Campos <carlosgc at gnome.org>
 // Copyright (C) 2007, 2008 Iñigo Martínez <inigomartinez at gmail.com>
 // Copyright (C) 2007 Jeff Muizelaar <jeff at infidigm.net>
@@ -1439,8 +1439,8 @@ void Annot::setPage(int pageIndex, bool updateP) {
   Object obj1(objNull);
 
   if (pageobj) {
-    Ref pageRef = pageobj->getRef();
-    obj1 = Object(pageRef.num, pageRef.gen);
+    const Ref pageRef = pageobj->getRef();
+    obj1 = Object(pageRef);
     page = pageIndex;
   } else {
     page = 0;
@@ -1881,7 +1881,7 @@ void AnnotPopup::initialize(PDFDoc *docA, Dict *dict) {
 
 void AnnotPopup::setParent(Annot *parentA) {
   const Ref parentRef = parentA->getRef();
-  update ("Parent", Object(parentRef.num, parentRef.gen));
+  update ("Parent", Object(parentRef));
 }
 
 void AnnotPopup::setOpen(bool openA) {
@@ -1994,7 +1994,7 @@ void AnnotMarkup::setPopup(std::unique_ptr<AnnotPopup> &&new_popup) {
 
   if (new_popup) {
     const Ref popupRef = new_popup->getRef();
-    update ("Popup", Object(popupRef.num, popupRef.gen));
+    update ("Popup", Object(popupRef));
 
     new_popup->setParent(this);
     popup = std::move(new_popup);
@@ -4920,7 +4920,7 @@ void AnnotWidget::updateAppearanceStream()
 
     // Write the AP dictionary
     obj1 = Object(new Dict(xref));
-    obj1.dictAdd("N", Object(updatedAppearanceStream.num, updatedAppearanceStream.gen));
+    obj1.dictAdd("N", Object(updatedAppearanceStream));
 
     // Update our internal pointers to the appearance dictionary
     appearStreams = std::make_unique<AnnotAppearance>(doc, &obj1);
diff --git a/poppler/Form.cc b/poppler/Form.cc
index 6f7f6ee4..e37212ee 100644
--- a/poppler/Form.cc
+++ b/poppler/Form.cc
@@ -112,7 +112,7 @@ void FormWidget::createWidgetAnnotation() {
   if (widget)
     return;
 
-  Object obj1(ref.num, ref.gen);
+  Object obj1(ref);
   widget = new AnnotWidget(doc, &obj, &obj1, field);
 }
 
diff --git a/poppler/GfxFont.cc b/poppler/GfxFont.cc
index 41b8bb95..15604999 100644
--- a/poppler/GfxFont.cc
+++ b/poppler/GfxFont.cc
@@ -407,7 +407,7 @@ GfxFontType GfxFont::getFontType(XRef *xref, Dict *fontDict, Ref *embID) {
 
   t = fontUnknownType;
   if (embID->num >= 0) {
-    Object obj3(embID->num, embID->gen);
+    Object obj3(*embID);
     Object obj4 = obj3.fetch(xref);
     if (obj4.isStream()) {
       obj4.streamReset();
@@ -603,7 +603,7 @@ GfxFontLoc *GfxFont::locateFont(XRef *xref, PSOutputDev *ps) {
   //----- embedded font
   if (embFontID.num >= 0) {
     embed = true;
-    Object refObj(embFontID.num, embFontID.gen);
+    Object refObj(embFontID);
     Object embFontObj = refObj.fetch(xref);
     if (!embFontObj.isStream()) {
       error(errSyntaxError, -1, "Embedded font object is wrong type");
@@ -819,7 +819,7 @@ char *GfxFont::readEmbFontFile(XRef *xref, int *len) {
   char *buf;
   Stream *str;
 
-  Object obj1(embFontID.num, embFontID.gen);
+  Object obj1(embFontID);
   Object obj2 = obj1.fetch(xref);
   if (!obj2.isStream()) {
     error(errSyntaxError, -1, "Embedded font file is not a stream");
diff --git a/poppler/Object.h b/poppler/Object.h
index 5c7058a5..01668652 100644
--- a/poppler/Object.h
+++ b/poppler/Object.h
@@ -15,7 +15,7 @@
 //
 // Copyright (C) 2007 Julien Rebetez <julienr at svn.gnome.org>
 // Copyright (C) 2008 Kees Cook <kees at outflux.net>
-// Copyright (C) 2008, 2010, 2017, 2018 Albert Astals Cid <aacid at kde.org>
+// Copyright (C) 2008, 2010, 2017-2019 Albert Astals Cid <aacid at kde.org>
 // Copyright (C) 2009 Jakub Wilk <jwilk at jwilk.net>
 // Copyright (C) 2012 Fabio D'Urso <fabiodurso at hotmail.it>
 // Copyright (C) 2013 Thomas Freitag <Thomas.Freitag at alfa.de>
@@ -174,6 +174,8 @@ public:
     { assert(streamA); type = objStream; stream = streamA; }
   Object(int numA, int genA)
     { type = objRef; ref.num = numA; ref.gen = genA; }
+  Object(const Ref r)
+    { type = objRef; ref.num = r.num; ref.gen = r.gen; }
 
   template<typename T> Object(T) = delete;
 
diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc
index 8e7b4733..6f0dd0e1 100644
--- a/poppler/PDFDoc.cc
+++ b/poppler/PDFDoc.cc
@@ -1583,7 +1583,7 @@ Object PDFDoc::createTrailerDict(int uxrefSize, bool incrUpdate, Goffset startxR
     trailerDict->set("ID", Object(array));
   }
 
-  trailerDict->set("Root", Object(root->num, root->gen));
+  trailerDict->set("Root", Object(*root));
 
   if (incrUpdate) { 
     trailerDict->set("Prev", Object(startxRef));
diff --git a/poppler/PSOutputDev.cc b/poppler/PSOutputDev.cc
index 9a7adc1d..5f1db1f5 100644
--- a/poppler/PSOutputDev.cc
+++ b/poppler/PSOutputDev.cc
@@ -15,7 +15,7 @@
 //
 // Copyright (C) 2005 Martin Kretzschmar <martink at gnome.org>
 // Copyright (C) 2005, 2006 Kristian Høgsberg <krh at redhat.com>
-// Copyright (C) 2006-2009, 2011-2013, 2015-2018 Albert Astals Cid <aacid at kde.org>
+// Copyright (C) 2006-2009, 2011-2013, 2015-2019 Albert Astals Cid <aacid at kde.org>
 // Copyright (C) 2006 Jeff Muizelaar <jeff at infidigm.net>
 // Copyright (C) 2007, 2008 Brad Hards <bradh at kde.org>
 // Copyright (C) 2008, 2009 Koji Otani <sho at bbr.jp>
@@ -2119,7 +2119,7 @@ void PSOutputDev::setupEmbeddedType1Font(Ref *id, GooString *psName) {
 
   // get the font stream and info
   Object obj1, obj2, obj3;
-  Object refObj(id->num, id->gen);
+  Object refObj(*id);
   Object strObj = refObj.fetch(xref);
   if (!strObj.isStream()) {
     error(errSyntaxError, -1, "Embedded font file object is not a stream");
diff --git a/poppler/Page.cc b/poppler/Page.cc
index 9aa25dfc..775c1a51 100644
--- a/poppler/Page.cc
+++ b/poppler/Page.cc
@@ -15,7 +15,7 @@
 //
 // Copyright (C) 2005 Kristian Høgsberg <krh at redhat.com>
 // Copyright (C) 2005 Jeff Muizelaar <jeff at infidigm.net>
-// Copyright (C) 2005-2013, 2016-2018 Albert Astals Cid <aacid at kde.org>
+// Copyright (C) 2005-2013, 2016-2019 Albert Astals Cid <aacid at kde.org>
 // Copyright (C) 2006-2008 Pino Toscano <pino at kde.org>
 // Copyright (C) 2006 Nickolay V. Shmyrev <nshmyrev at yandex.ru>
 // Copyright (C) 2006 Scott Turner <scotty1024 at mac.com>
@@ -366,7 +366,7 @@ Annots *Page::getAnnots(XRef *xrefA) {
 }
 
 void Page::addAnnot(Annot *annot) {
-  Ref annotRef = annot->getRef ();
+  const Ref annotRef = annot->getRef ();
 
   // Make sure we have annots before adding the new one
   // even if it's an empty list so that we can safely
@@ -380,16 +380,16 @@ void Page::addAnnot(Annot *annot) {
     // we have to create it
 
     Object obj1 = Object(new Array(xref));
-    obj1.arrayAdd(Object(annotRef.num, annotRef.gen));
+    obj1.arrayAdd(Object(annotRef));
 
     annotsRef = xref->addIndirectObject (&obj1);
-    annotsObj = Object(annotsRef.num, annotsRef.gen);
-    pageObj.dictSet ("Annots", Object(annotsRef.num, annotsRef.gen));
+    annotsObj = Object(annotsRef);
+    pageObj.dictSet ("Annots", Object(annotsRef));
     xref->setModifiedObject (&pageObj, pageRef);
   } else {
     Object obj1 = getAnnotsObject();
     if (obj1.isArray()) {
-      obj1.arrayAdd (Object(annotRef.num, annotRef.gen));
+      obj1.arrayAdd (Object(annotRef));
       if (annotsObj.isRef())
         xref->setModifiedObject (&obj1, annotsObj.getRef());
       else
diff --git a/poppler/XRef.cc b/poppler/XRef.cc
index 9f25ff88..2541d113 100644
--- a/poppler/XRef.cc
+++ b/poppler/XRef.cc
@@ -15,7 +15,7 @@
 //
 // Copyright (C) 2005 Dan Sheridan <dan.sheridan at postman.org.uk>
 // Copyright (C) 2005 Brad Hards <bradh at frogmouth.net>
-// Copyright (C) 2006, 2008, 2010, 2012-2014, 2016-2018 Albert Astals Cid <aacid at kde.org>
+// Copyright (C) 2006, 2008, 2010, 2012-2014, 2016-2019 Albert Astals Cid <aacid at kde.org>
 // Copyright (C) 2007-2008 Julien Rebetez <julienr at svn.gnome.org>
 // Copyright (C) 2007 Carlos Garcia Campos <carlosgc at gnome.org>
 // Copyright (C) 2009, 2010 Ilya Gorenbein <igorenbein at finjan.com>
@@ -1206,7 +1206,7 @@ Object XRef::createDocInfoIfNoneExists() {
 
   obj = Object(new Dict(this));
   const Ref ref = addIndirectObject(&obj);
-  trailerDict.dictSet("Info", Object(ref.num, ref.gen));
+  trailerDict.dictSet("Info", Object(ref));
 
   return obj;
 }
diff --git a/qt5/src/poppler-document.cc b/qt5/src/poppler-document.cc
index 0aa5bed4..c0def750 100644
--- a/qt5/src/poppler-document.cc
+++ b/qt5/src/poppler-document.cc
@@ -1,7 +1,7 @@
 /* poppler-document.cc: qt interface to poppler
  * Copyright (C) 2005, Net Integration Technologies, Inc.
  * Copyright (C) 2005, 2008, Brad Hards <bradh at frogmouth.net>
- * Copyright (C) 2005-2010, 2012, 2013, 2015, 2017, 2018, Albert Astals Cid <aacid at kde.org>
+ * Copyright (C) 2005-2010, 2012, 2013, 2015, 2017-2019, Albert Astals Cid <aacid at kde.org>
  * Copyright (C) 2006-2010, Pino Toscano <pino at kde.org>
  * Copyright (C) 2010, 2011 Hib Eris <hib at hiberis.nl>
  * Copyright (C) 2012 Koji Otani <sho at bbr.jp>
@@ -246,7 +246,7 @@ namespace Poppler {
 	{
 		XRef *xref = m_doc->doc->getXRef()->copy();
 
-		Object refObj(fi.m_data->embRef.num, fi.m_data->embRef.gen);
+		Object refObj(fi.m_data->embRef);
 		Object strObj = refObj.fetch(xref);
 		if (strObj.isStream())
 		{
diff --git a/utils/pdfunite.cc b/utils/pdfunite.cc
index dc57afe8..aa22592f 100644
--- a/utils/pdfunite.cc
+++ b/utils/pdfunite.cc
@@ -7,7 +7,7 @@
 // Copyright (C) 2011-2015, 2017 Thomas Freitag <Thomas.Freitag at alfa.de>
 // Copyright (C) 2012 Arseny Solokha <asolokha at gmx.com>
 // Copyright (C) 2012 Fabio D'Urso <fabiodurso at hotmail.it>
-// Copyright (C) 2012, 2014, 2017, 2018 Albert Astals Cid <aacid at kde.org>
+// Copyright (C) 2012, 2014, 2017-2019 Albert Astals Cid <aacid at kde.org>
 // Copyright (C) 2013 Adrian Johnson <ajohnson at redneon.com>
 // Copyright (C) 2013 Hib Eris <hib at hiberis.nl>
 // Copyright (C) 2015 Arthur Stavisky <vovodroid at gmail.com>
@@ -68,7 +68,7 @@ static void doMergeNameTree(PDFDoc *doc, XRef *srcXRef, XRef *countRef, int oldR
           }
         }
         newNameArray->add(Object(new GooString(key.getString()->c_str())));
-        newNameArray->add(Object(value.getRef().num, value.getRef().gen));
+        newNameArray->add(Object(value.getRef()));
       }
     }
     while (j < mergeNameArray.arrayGetLength() - 1) {


More information about the poppler mailing list