[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freedesktop-poppler
Subject:    [poppler] poppler/Catalog.cc poppler/Page.cc poppler/Page.h poppler/PDFDoc.cc
From:       gitlab-mirror () kemper ! freedesktop ! org (GitLab Mirror)
Date:       2018-11-16 22:14:42
Message-ID: 20181116221442.CCB7E761B1 () kemper ! freedesktop ! org
[Download RAW message or body]

 poppler/Catalog.cc |    4 ++--
 poppler/PDFDoc.cc  |    2 +-
 poppler/Page.cc    |   16 ++++++++--------
 poppler/Page.h     |    2 +-
 4 files changed, 12 insertions(+), 12 deletions(-)

New commits:
commit 647a9813c41d936feea063f42060535464314ccc
Author: Albert Astals Cid <aacid@kde.org>
Date:   Fri Nov 16 23:14:13 2018 +0100

    Save Object::copy on Page construction

diff --git a/poppler/Catalog.cc b/poppler/Catalog.cc
index a842dbfd..2d63a7d2 100644
--- a/poppler/Catalog.cc
+++ b/poppler/Catalog.cc
@@ -293,7 +293,7 @@ bool Catalog::cachePageTree(int page)
     Object kid = kids.arrayGet(kidsIdx);
     if (kid.isDict("Page") || (kid.isDict() && !kid.getDict()->hasKey("Kids"))) {
       PageAttrs *attrs = new PageAttrs(attrsList->back(), kid.getDict());
-      auto p = std::make_unique<Page>(doc, pages.size()+1, &kid,
+      auto p = std::make_unique<Page>(doc, pages.size()+1, std::move(kid),
 				      kidRef.getRef(), attrs, form);
       if (!p->isOk()) {
 	error(errSyntaxError, -1, "Failed to create page (page {0:uld})", pages.size()+1);
@@ -739,7 +739,7 @@ int Catalog::getNumPages()
 	Dict *pageDict = pagesDict.getDict();
 	if (pageRootRef.isRef()) {
 	  const Ref pageRef = pageRootRef.getRef();
-	  auto p = std::make_unique<Page>(doc, 1, &pagesDict, pageRef, new \
PageAttrs(nullptr, pageDict), form); +	  auto p = std::make_unique<Page>(doc, 1, \
std::move(pagesDict), pageRef, new PageAttrs(nullptr, pageDict), form);  if \
(p->isOk()) {  pages.emplace_back(std::move(p), pageRef);
 
diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc
index 4f094905..b7fbae78 100644
--- a/poppler/PDFDoc.cc
+++ b/poppler/PDFDoc.cc
@@ -2099,7 +2099,7 @@ Page *PDFDoc::parsePage(int page)
   }
   Dict *pageDict = obj.getDict();
 
-  return new Page(this, page, &obj, pageRef,
+  return new Page(this, page, std::move(obj), pageRef,
                new PageAttrs(nullptr, pageDict), catalog->getForm());
 }
 
diff --git a/poppler/Page.cc b/poppler/Page.cc
index 15f751bc..6d6d8642 100644
--- a/poppler/Page.cc
+++ b/poppler/Page.cc
@@ -242,7 +242,7 @@ bool PageAttrs::readBox(Dict *dict, const char *key, PDFRectangle \
*box) {  
 #define pageLocker()   std::unique_lock<std::recursive_mutex> locker(mutex)
 
-Page::Page(PDFDoc *docA, int numA, Object *pageDict, Ref pageRefA, PageAttrs \
*attrsA, Form *form) { +Page::Page(PDFDoc *docA, int numA, Object &&pageDict, Ref \
pageRefA, PageAttrs *attrsA, Form *form) {  ok = true;
   doc = docA;
   xref = doc->getXRef();
@@ -250,7 +250,7 @@ Page::Page(PDFDoc *docA, int numA, Object *pageDict, Ref \
pageRefA, PageAttrs *at  duration = -1;
   annots = nullptr;
 
-  pageObj = pageDict->copy();
+  pageObj = std::move(pageDict);
   pageRef = pageRefA;
 
   // get attributes
@@ -258,7 +258,7 @@ Page::Page(PDFDoc *docA, int numA, Object *pageDict, Ref \
pageRefA, PageAttrs *at  attrs->clipBoxes();
 
   // transtion
-  trans = pageDict->dictLookupNF("Trans");
+  trans = pageObj.dictLookupNF("Trans");
   if (!(trans.isRef() || trans.isDict() || trans.isNull())) {
     error(errSyntaxError, -1, "Page transition object (page {0:d}) is wrong type \
({1:s})",  num, trans.getTypeName());
@@ -266,7 +266,7 @@ Page::Page(PDFDoc *docA, int numA, Object *pageDict, Ref \
pageRefA, PageAttrs *at  }
 
   // duration
-  Object tmp = pageDict->dictLookupNF("Dur");
+  Object tmp = pageObj.dictLookupNF("Dur");
   if (!(tmp.isNum() || tmp.isNull())) {
     error(errSyntaxError, -1, "Page duration object (page {0:d}) is wrong type \
({1:s})",  num, tmp.getTypeName());
@@ -275,7 +275,7 @@ Page::Page(PDFDoc *docA, int numA, Object *pageDict, Ref \
pageRefA, PageAttrs *at  }
 
   // annotations
-  annotsObj = pageDict->dictLookupNF("Annots");
+  annotsObj = pageObj.dictLookupNF("Annots");
   if (!(annotsObj.isRef() || annotsObj.isArray() || annotsObj.isNull())) {
     error(errSyntaxError, -1, "Page annotations object (page {0:d}) is wrong type \
({1:s})",  num, annotsObj.getTypeName());
@@ -283,7 +283,7 @@ Page::Page(PDFDoc *docA, int numA, Object *pageDict, Ref \
pageRefA, PageAttrs *at  }
 
   // contents
-  contents = pageDict->dictLookupNF("Contents");
+  contents = pageObj.dictLookupNF("Contents");
   if (!(contents.isRef() || contents.isArray() ||
 	contents.isNull())) {
     error(errSyntaxError, -1, "Page contents object (page {0:d}) is wrong type \
({1:s})", @@ -292,7 +292,7 @@ Page::Page(PDFDoc *docA, int numA, Object *pageDict, \
Ref pageRefA, PageAttrs *at  }
 
   // thumb
-  thumb = pageDict->dictLookupNF("Thumb");
+  thumb = pageObj.dictLookupNF("Thumb");
   if (!(thumb.isStream() || thumb.isNull() || thumb.isRef())) {
       error(errSyntaxError, -1, "Page thumb object (page {0:d}) is wrong type \
({1:s})",  num, thumb.getTypeName());
@@ -300,7 +300,7 @@ Page::Page(PDFDoc *docA, int numA, Object *pageDict, Ref \
pageRefA, PageAttrs *at  }
 
   // actions
-  actions = pageDict->dictLookupNF("AA");
+  actions = pageObj.dictLookupNF("AA");
   if (!(actions.isDict() || actions.isNull())) {
       error(errSyntaxError, -1, "Page additional action object (page {0:d}) is wrong \
type ({1:s})",  num, actions.getTypeName());
diff --git a/poppler/Page.h b/poppler/Page.h
index 37b59455..01f056f9 100644
--- a/poppler/Page.h
+++ b/poppler/Page.h
@@ -141,7 +141,7 @@ class Page {
 public:
 
   // Constructor.
-  Page(PDFDoc *docA, int numA, Object *pageDict, Ref pageRefA, PageAttrs *attrsA, \
Form *form); +  Page(PDFDoc *docA, int numA, Object &&pageDict, Ref pageRefA, \
PageAttrs *attrsA, Form *form);  
   // Destructor.
   ~Page();
_______________________________________________
poppler mailing list
poppler@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/poppler


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic