utils/JSInfo.cc | 13 ++++++++----- utils/JSInfo.h | 3 ++- 2 files changed, 10 insertions(+), 6 deletions(-)
New commits: commit 4d799cdf9b9039b003de7d3baf05d858bc507a5a Author: Albert Astals Cid <[email protected]> Date: Thu Jun 2 00:22:05 2016 +0200 pdfinfo: Fix another leak Again not crucial in pdfinfo itself but nice to be clean so that if it the leak check fails is because the core is doing something bad diff --git a/utils/JSInfo.cc b/utils/JSInfo.cc index e3205c4..71bfde9 100644 --- a/utils/JSInfo.cc +++ b/utils/JSInfo.cc @@ -5,6 +5,7 @@ // This file is licensed under the GPLv2 or later // // Copyright (C) 2013 Adrian Johnson <[email protected]> +// Copyright (C) 2016 Albert Astals Cid <[email protected]> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -47,7 +48,7 @@ void JSInfo::printJS(GooString *js) { } } -void JSInfo::scanLinkAction(LinkAction *link, const char *action) { +void JSInfo::scanLinkAction(LinkAction *link, const char *action, bool deleteLink) { if (!link) return; @@ -78,6 +79,8 @@ void JSInfo::scanLinkAction(LinkAction *link, const char *action) { } } } + if (deleteLink) + delete link; } void JSInfo::scanJS(int nPages) { @@ -134,7 +137,7 @@ void JSInfo::scan(int nPages) { for (int j = 0; j < field->getNumWidgets(); j++) { FormWidget *widget = field->getWidget(j); scanLinkAction(widget->getActivationAction(), - "Field Activated"); + "Field Activated", false); scanLinkAction(widget->getAdditionalAction(Annot::actionFieldModified), "Field Modified"); scanLinkAction(widget->getAdditionalAction(Annot::actionFormatField), @@ -171,11 +174,11 @@ void JSInfo::scan(int nPages) { for (int i = 0; i < annots->getNumAnnots(); ++i) { if (annots->getAnnot(i)->getType() == Annot::typeLink) { AnnotLink *annot = static_cast<AnnotLink *>(annots->getAnnot(i)); - scanLinkAction(annot->getAction(), "Link Annotation Activated"); + scanLinkAction(annot->getAction(), "Link Annotation Activated", false); } else if (annots->getAnnot(i)->getType() == Annot::typeScreen) { AnnotScreen *annot = static_cast<AnnotScreen *>(annots->getAnnot(i)); scanLinkAction(annot->getAction(), - "Screen Annotation Activated"); + "Screen Annotation Activated", false); scanLinkAction(annot->getAdditionalAction(Annot::actionCursorEntering), "Screen Annotation Cursor Enter"); scanLinkAction(annot->getAdditionalAction(Annot::actionCursorLeaving), @@ -200,7 +203,7 @@ void JSInfo::scan(int nPages) { } else if (annots->getAnnot(i)->getType() == Annot::typeWidget) { AnnotWidget *annot = static_cast<AnnotWidget *>(annots->getAnnot(i)); scanLinkAction(annot->getAction(), - "Widget Annotation Activated"); + "Widget Annotation Activated", false); scanLinkAction(annot->getAdditionalAction(Annot::actionCursorEntering), "Widget Annotation Cursor Enter"); scanLinkAction(annot->getAdditionalAction(Annot::actionCursorLeaving), diff --git a/utils/JSInfo.h b/utils/JSInfo.h index 19b786f..b2d7b7f 100644 --- a/utils/JSInfo.h +++ b/utils/JSInfo.h @@ -5,6 +5,7 @@ // This file is licensed under the GPLv2 or later // // Copyright (C) 2013 Adrian Johnson <[email protected]> +// Copyright (C) 2016 Albert Astals Cid <[email protected]> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -52,7 +53,7 @@ private: UnicodeMap *uniMap; void scan(int nPages); - void scanLinkAction(LinkAction *link, const char *action); + void scanLinkAction(LinkAction *link, const char *action, bool deleteLink = true); void printJS(GooString *js); }; _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
