From 81bdc9b3c75ac1f42cd7da0dc2ece5a688993546 Mon Sep 17 00:00:00 2001 From: Akira Kakuto Date: Thu, 14 Sep 2017 08:59:32 +0000 Subject: pdftosrc.cc: Fix a potential bug which I introduced on 2017-08-13 git-svn-id: svn://tug.org/texlive/trunk@45299 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/pdftexdir/ChangeLog | 5 +++++ Build/source/texk/web2c/pdftexdir/pdftosrc.cc | 13 +++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Build/source/texk/web2c/pdftexdir/ChangeLog b/Build/source/texk/web2c/pdftexdir/ChangeLog index 41629f27c5a..8ecdff2ce2b 100644 --- a/Build/source/texk/web2c/pdftexdir/ChangeLog +++ b/Build/source/texk/web2c/pdftexdir/ChangeLog @@ -1,3 +1,8 @@ +2017-09-14 Akira Kakuto + + * pdftosrc.cc: Fix a potential bug which I introduced on + 2017-08-13. + 2017-08-13 Akira Kakuto * pdftosrc.cc: Remove a line, which I believe is not necessary, diff --git a/Build/source/texk/web2c/pdftexdir/pdftosrc.cc b/Build/source/texk/web2c/pdftexdir/pdftosrc.cc index eb05da8ae3a..b4b0d1adb96 100644 --- a/Build/source/texk/web2c/pdftexdir/pdftosrc.cc +++ b/Build/source/texk/web2c/pdftexdir/pdftosrc.cc @@ -153,6 +153,7 @@ int main(int argc, char *argv[]) (e->type == xrefEntryFree ? "f" : "n")); else { // e->offset is the object number of the object stream Stream *str; + Lexer *lexer; Parser *parser; Object objStr, obj1, obj2; int nObjects, first, n; @@ -170,7 +171,8 @@ int main(int argc, char *argv[]) objStr.streamReset(); obj1.initNull(); str = new EmbedStream(objStr.getStream(), &obj1, gTrue, first); - parser = new Parser(xref, new Lexer(xref, str), gFalse); + lexer = new Lexer(xref, str); + parser = new Parser(xref, lexer, gFalse); for (n = 0; n < nObjects; ++n) { parser->getObj(&obj1); parser->getObj(&obj2); @@ -179,12 +181,11 @@ int main(int argc, char *argv[]) obj1.free(); obj2.free(); } -/* The stream str is local, and it is never used hereafter. - When parser is deleted, Lexer(xref, str), and the stream str - are automatically deleted. Thus this line, which causes a crash - in the case of xpdf-4.00, is not necessary. +#ifdef POPPLER_VERSION /* 0.57.0 or older (or xpdf 3.04) */ while (str->getChar() != EOF) ; -*/ +#else /* xpdf 4.00 */ + lexer->skipToEOF(); +#endif delete parser; objStr.free(); -- cgit v1.2.3