poppler/Annot.h | 4 ++-- poppler/Page.cc | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-)
New commits: commit 155f73bdd261622323491df4aebb840cde8bfee1 Author: Albert Astals Cid <[email protected]> Date: Tue Apr 7 17:54:22 2020 +0200 Fix crash in destruction of standalone forms If we just give the Dict to Object() it doesn't increase the ref so on destruction we do one unref too much (because we had done one ref too few) and crash diff --git a/poppler/Annot.h b/poppler/Annot.h index 7e911f28..47d8b48b 100644 --- a/poppler/Annot.h +++ b/poppler/Annot.h @@ -21,7 +21,7 @@ // Copyright (C) 2008 Hugo Mercier <[email protected]> // Copyright (C) 2008 Pino Toscano <[email protected]> // Copyright (C) 2008 Tomas Are Haavet <[email protected]> -// Copyright (C) 2009-2011, 2013, 2016-2019 Albert Astals Cid <[email protected]> +// Copyright (C) 2009-2011, 2013, 2016-2020 Albert Astals Cid <[email protected]> // Copyright (C) 2012, 2013 Fabio D'Urso <[email protected]> // Copyright (C) 2012, 2015 Tobias Koenig <[email protected]> // Copyright (C) 2013 Thomas Freitag <[email protected]> @@ -697,7 +697,7 @@ public: PDFDoc *getDoc() const { return doc; } bool getHasRef() const { return hasRef; } Ref getRef() const { return ref; } - Dict *getDict() const { return annotObj.getDict(); } + const Object &getAnnotObj() const { return annotObj; } AnnotSubtype getType() const { return type; } PDFRectangle *getRect() const { return rect.get(); } void getRect(double *x1, double *y1, double *x2, double *y2) const; diff --git a/poppler/Page.cc b/poppler/Page.cc index babc63d1..5140174a 100644 --- a/poppler/Page.cc +++ b/poppler/Page.cc @@ -15,7 +15,7 @@ // // Copyright (C) 2005 Kristian Høgsberg <[email protected]> // Copyright (C) 2005 Jeff Muizelaar <[email protected]> -// Copyright (C) 2005-2013, 2016-2019 Albert Astals Cid <[email protected]> +// Copyright (C) 2005-2013, 2016-2020 Albert Astals Cid <[email protected]> // Copyright (C) 2006-2008 Pino Toscano <[email protected]> // Copyright (C) 2006 Nickolay V. Shmyrev <[email protected]> // Copyright (C) 2006 Scott Turner <[email protected]> @@ -378,7 +378,7 @@ void Page::loadStandaloneFields(Annots *annotations, Form *form) { continue; // this annot is referenced inside Form, skip it std::set<int> parents; - FormField *field = Form::createFieldFromDict (Object(annot->getDict()), + FormField *field = Form::createFieldFromDict (annot->getAnnotObj().copy(), annot->getDoc(), r, nullptr, &parents); if (field && field->getType() == formButton && field->getNumWidgets() == 1) { _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
