Use a std::unique_ptr for XRef
This makes memory handling a tiny bit more robust.
diff --git a/poppler/FontInfo.cc b/poppler/FontInfo.cc
index 3955789..7dc6276 100644
--- a/poppler/FontInfo.cc
+++ b/poppler/FontInfo.cc
@@ -69,27 +69,26 @@
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;
}