diff options
author | Oliver Sander <oliver.sander@tu-dresden.de> | 2019-10-14 15:15:45 +0200 |
---|---|---|
committer | Oliver Sander <oliver.sander@tu-dresden.de> | 2019-10-23 08:51:46 +0000 |
commit | 8911527dc38908ee56626fc55d09041475cc5145 (patch) | |
tree | 34482d44dec9dea64617490dc98a0e3ecec3c8d8 /poppler | |
parent | 78379d8434646dc68d20e935a7e7da38705fa6cd (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.cc | 9 |
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; } |