diff options
Diffstat (limited to 'Build/source/libs/xpdf/xpdf-src/xpdf/pdffonts.cc')
-rw-r--r-- | Build/source/libs/xpdf/xpdf-src/xpdf/pdffonts.cc | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/Build/source/libs/xpdf/xpdf-src/xpdf/pdffonts.cc b/Build/source/libs/xpdf/xpdf-src/xpdf/pdffonts.cc index ad9e40d7c62..bde57557c3c 100644 --- a/Build/source/libs/xpdf/xpdf-src/xpdf/pdffonts.cc +++ b/Build/source/libs/xpdf/xpdf-src/xpdf/pdffonts.cc @@ -96,10 +96,6 @@ static char *seenObjs; static int numObjects; int main(int argc, char *argv[]) { -#if USE_EXCEPTIONS - try { -#endif - char *fileName; GString *ownerPW, *userPW; GBool ok; @@ -178,21 +174,22 @@ int main(int argc, char *argv[]) { numObjects = doc->getXRef()->getNumObjects(); seenObjs = (char *)gmalloc(numObjects); memset(seenObjs, 0, numObjects); - annots = doc->getAnnots(); for (pg = firstPage; pg <= lastPage; ++pg) { page = doc->getCatalog()->getPage(pg); if ((resDict = page->getResourceDict())) { scanFonts(resDict, doc); } - int nAnnots = annots->getNumAnnots(pg); - for (i = 0; i < nAnnots; ++i) { - if (annots->getAnnot(pg, i)->getAppearance(&obj1)->isStream()) { + annots = new Annots(doc, page->getAnnots(&obj1)); + obj1.free(); + for (i = 0; i < annots->getNumAnnots(); ++i) { + if (annots->getAnnot(i)->getAppearance(&obj1)->isStream()) { obj1.streamGetDict()->lookupNF("Resources", &obj2); scanFonts(&obj2, doc); obj2.free(); } obj1.free(); } + delete annots; } if ((form = doc->getCatalog()->getForm())) { for (i = 0; i < form->getNumFields(); ++i) { @@ -225,13 +222,6 @@ int main(int argc, char *argv[]) { gMemReport(stderr); return exitCode; - -#if USE_EXCEPTIONS - } catch (GMemException e) { - fprintf(stderr, "Out of memory\n"); - return 98; - } -#endif } static void scanFonts(Object *obj, PDFDoc *doc) { |