summaryrefslogtreecommitdiff
path: root/poppler
diff options
context:
space:
mode:
authorOliver Sander <oliver.sander@tu-dresden.de>2019-10-14 15:15:45 +0200
committerOliver Sander <oliver.sander@tu-dresden.de>2019-10-23 08:51:46 +0000
commit8911527dc38908ee56626fc55d09041475cc5145 (patch)
tree34482d44dec9dea64617490dc98a0e3ecec3c8d8 /poppler
parent78379d8434646dc68d20e935a7e7da38705fa6cd (diff)
Use a std::unique_ptr for XRef
This makes memory handling a tiny bit more robust.
Diffstat (limited to 'poppler')
-rw-r--r--poppler/FontInfo.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/poppler/FontInfo.cc b/poppler/FontInfo.cc
index 39557894..7dc62769 100644
--- a/poppler/FontInfo.cc
+++ b/poppler/FontInfo.cc
@@ -69,27 +69,26 @@ std::vector<FontInfo*> *FontInfoScanner::scan(int nPages) {
lastPage = doc->getNumPages() + 1;
}
- XRef *xrefA = doc->getXRef()->copy();
+ std::unique_ptr<XRef> xrefA(doc->getXRef()->copy());
for (int pg = currentPage; pg < lastPage; ++pg) {
page = doc->getPage(pg);
if (!page) continue;
- if ((resDict = page->getResourceDictCopy(xrefA))) {
- scanFonts(xrefA, resDict, result);
+ if ((resDict = page->getResourceDictCopy(xrefA.get()))) {
+ scanFonts(xrefA.get(), resDict, &result);
delete resDict;
}
annots = page->getAnnots();
for (int i = 0; i < annots->getNumAnnots(); ++i) {
Object obj1 = annots->getAnnot(i)->getAppearanceResDict();
if (obj1.isDict()) {
- scanFonts(xrefA, obj1.getDict(), result);
+ scanFonts(xrefA.get(), obj1.getDict(), &result);
}
}
}
currentPage = lastPage;
- delete xrefA;
return result;
}