[poppler] qt5/tests
qt5/tests/test-render-to-file.cpp |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) New commits: commit 500ce88a3b5b0bd556ac6941ba66a86cae44663a Author: Oliver SanderDate: Wed Sep 13 12:12:29 2017 +0200 Fix two minor typos diff --git a/qt5/tests/test-render-to-file.cpp b/qt5/tests/test-render-to-file.cpp index 5f86da42..20398ddb 100644 --- a/qt5/tests/test-render-to-file.cpp +++ b/qt5/tests/test-render-to-file.cpp @@ -14,7 +14,7 @@ int main( int argc, char **argv ) argc > 3) { // use argument as file name -qWarning() << "usage: test-poppler-qt4 filename [-arthur]"; +qWarning() << "usage: test-render-to-file-qt5 filename [-arthur]"; exit(1); } @@ -60,7 +60,7 @@ int main( int argc, char **argv ) QTime t = QTime::currentTime(); QImage image = page->renderToImage(); qDebug() << "Rendering took" << t.msecsTo(QTime::currentTime()) << "msecs"; -image.save(QString("test-rennder-to-file%1.ppm").arg(i)); +image.save(QString("test-render-to-file%1.ppm").arg(i)); delete page; } } ___ poppler mailing list poppler@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/poppler
[poppler] poppler/Gfx.cc poppler/GfxFont.cc poppler/GfxFont.h poppler/Gfx.h
poppler/Gfx.cc | 25 +++-- poppler/Gfx.h |1 + poppler/GfxFont.cc |8 poppler/GfxFont.h |1 + 4 files changed, 33 insertions(+), 2 deletions(-) New commits: commit aaf5327649e8f7371c9d3270e7813c43ddfd47ee Author: Albert Astals CidDate: Wed Sep 13 23:01:03 2017 +0200 Gfx::doShowText: Fix infinite recursion on broken files Bug #102701 diff --git a/poppler/Gfx.cc b/poppler/Gfx.cc index 6ffb7bcf..3eea6d2a 100644 --- a/poppler/Gfx.cc +++ b/poppler/Gfx.cc @@ -3953,12 +3953,33 @@ void Gfx::doShowText(GooString *s) { state->transformDelta(dx, dy, , ); if (!out->beginType3Char(state, curX + riseX, curY + riseY, ddx, ddy, code, u, uLen)) { - Object charProc = ((Gfx8BitFont *)font)->getCharProc(code); + Object charProc = ((Gfx8BitFont *)font)->getCharProcNF(code); + int refNum = -1; + if (charProc.isRef()) { + refNum = charProc.getRef().num; + charProc = charProc.fetch(((Gfx8BitFont *)font)->getCharProcs()->getXRef()); + } if ((resDict = ((Gfx8BitFont *)font)->getResources())) { pushResources(resDict); } if (charProc.isStream()) { - display(, gFalse); + std::set::iterator charProcDrawingIt; + bool displayCharProc = true; + if (refNum != -1) { + if (charProcDrawing.find(refNum) == charProcDrawing.end()) { + charProcDrawingIt = charProcDrawing.insert(refNum).first; + } else { + displayCharProc = false; + error(errSyntaxError, -1, "CharProc wants to draw a CharProc that is already beign drawn"); + } + } + if (displayCharProc) { + display(, gFalse); + + if (refNum != -1) { + charProcDrawing.erase(charProcDrawingIt); + } + } } else { error(errSyntaxError, getPos(), "Missing or bad Type3 CharProc entry"); } diff --git a/poppler/Gfx.h b/poppler/Gfx.h index 00eaec49..293f4551 100644 --- a/poppler/Gfx.h +++ b/poppler/Gfx.h @@ -228,6 +228,7 @@ private: Parser *parser; // parser for page content stream(s) std::set formsDrawing; // the forms that are being drawn + std::set charProcDrawing; // the charProc that are being drawn GBool// callback to check for an abort (*abortCheckCbk)(void *data); diff --git a/poppler/GfxFont.cc b/poppler/GfxFont.cc index d95f8f7c..1c3d0b25 100644 --- a/poppler/GfxFont.cc +++ b/poppler/GfxFont.cc @@ -1759,6 +1759,14 @@ Object Gfx8BitFont::getCharProc(int code) { } } +Object Gfx8BitFont::getCharProcNF(int code) { + if (enc[code] && charProcs.isDict()) { +return charProcs.dictLookupNF(enc[code]); + } else { +return Object(objNull); + } +} + Dict *Gfx8BitFont::getResources() { return resources.isDict() ? resources.getDict() : (Dict *)NULL; } diff --git a/poppler/GfxFont.h b/poppler/GfxFont.h index 06c1df6d..5985912a 100644 --- a/poppler/GfxFont.h +++ b/poppler/GfxFont.h @@ -353,6 +353,7 @@ public: // Return the Type 3 CharProc for the character associated with . Object getCharProc(int code); + Object getCharProcNF(int code); // Return the Type 3 Resources dictionary, or NULL if none. Dict *getResources(); ___ poppler mailing list poppler@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/poppler
[poppler] poppler/XRef.cc
poppler/XRef.cc |3 +++ 1 file changed, 3 insertions(+) New commits: commit 476394e7a025e02e4897da2e765df2c895d0708f Author: Albert Astals CidDate: Wed Sep 13 22:58:14 2017 +0200 XRef::parseEntry: Fix crash in broken file Bug #102687 diff --git a/poppler/XRef.cc b/poppler/XRef.cc index eca2dc70..f3b88ec0 100644 --- a/poppler/XRef.cc +++ b/poppler/XRef.cc @@ -1526,6 +1526,9 @@ GBool XRef::parseEntry(Goffset offset, XRefEntry *entry) { GBool r; + if (unlikely(entry == nullptr)) +return gFalse; + Parser parser(NULL, new Lexer(NULL, str->makeSubStream(offset, gFalse, 20, Object(objNull))), gTrue); ___ poppler mailing list poppler@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/poppler
[poppler] utils/pdfinfo.cc
utils/pdfinfo.cc |1 - 1 file changed, 1 deletion(-) New commits: commit 0f891b85169dabd3d23348aba40266547bd4bcf6 Author: Adrian JohnsonDate: Wed Sep 13 20:12:52 2017 +0930 pdfinfo: don't truncate dest name diff --git a/utils/pdfinfo.cc b/utils/pdfinfo.cc index 2daff7f9..2ef1cd59 100644 --- a/utils/pdfinfo.cc +++ b/utils/pdfinfo.cc @@ -407,7 +407,6 @@ static void printDestinations(PDFDoc *doc, UnicodeMap *uMap) { auto pageDests = map.find(*ref); if (pageDests != map.end()) { for (auto& it: pageDests->second) { - it.first->getCString()[4] = 0; printf("%4d ", i); printLinkDest(it.second); printf(" \""); ___ poppler mailing list poppler@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/poppler
[poppler] cmake/modules
cmake/modules/PopplerMacros.cmake | 44 -- 1 file changed, 24 insertions(+), 20 deletions(-) New commits: commit 951e7b3c1f337ceaf490edce3c575f89c45cb6d4 Author: Adrian JohnsonDate: Wed Sep 13 19:24:07 2017 +0930 cmake: ensure user cflags/cxxflags are appended to end diff --git a/cmake/modules/PopplerMacros.cmake b/cmake/modules/PopplerMacros.cmake index 408e6dca..442e7ee5 100644 --- a/cmake/modules/PopplerMacros.cmake +++ b/cmake/modules/PopplerMacros.cmake @@ -100,7 +100,7 @@ endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) if(CMAKE_COMPILER_IS_GNUCXX) if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0.0") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsuggest-override" ) + set(CMAKE_CXX_FLAGS "-Wsuggest-override ${CMAKE_CXX_FLAGS}" ) endif() # set the default compile warnings @@ -108,18 +108,20 @@ if(CMAKE_COMPILER_IS_GNUCXX) set(DEFAULT_COMPILE_WARNINGS_YES "-Wall -Wcast-align -fno-exceptions -fno-check-new -fno-common") set(DEFAULT_COMPILE_WARNINGS_KDE "-Wno-long-long -Wundef -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -Wcast-align -Wconversion -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common") - set(CMAKE_CXX_FLAGS"-Wnon-virtual-dtor -Woverloaded-virtual -D_DEFAULT_SOURCE ${CMAKE_CXX_FLAGS}") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") - set(CMAKE_CXX_FLAGS_RELEASE"-O2 -DNDEBUG") - set(CMAKE_CXX_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline") - set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3 -fno-inline") - set(CMAKE_CXX_FLAGS_PROFILE"-g3 -fno-inline -ftest-coverage -fprofile-arcs") + set(_save_cxxflags "${CMAKE_CXX_FLAGS}") + set(CMAKE_CXX_FLAGS"-Wnon-virtual-dtor -Woverloaded-virtual -D_DEFAULT_SOURCE") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}") + set(CMAKE_CXX_FLAGS_RELEASE"-O2 -DNDEBUG ${_save_cxxflags}") + set(CMAKE_CXX_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline ${_save_cxxflags}") + set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3 -fno-inline ${_save_cxxflags}") + set(CMAKE_CXX_FLAGS_PROFILE"-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cxxflags}") + set(_save_cflags "${CMAKE_C_FLAGS}") set(CMAKE_C_FLAGS "-std=c99") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") - set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG") - set(CMAKE_C_FLAGS_DEBUG"-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline") - set(CMAKE_C_FLAGS_DEBUGFULL"-g3 -fno-inline") - set(CMAKE_C_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cflags}") + set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG ${_save_cflags}") + set(CMAKE_C_FLAGS_DEBUG"-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline ${_save_cflags}") + set(CMAKE_C_FLAGS_DEBUGFULL"-g3 -fno-inline ${_save_cflags}") + set(CMAKE_C_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cflags}") poppler_check_link_flag("-Wl,--as-needed" GCC_HAS_AS_NEEDED) if(GCC_HAS_AS_NEEDED) @@ -130,13 +132,15 @@ if(CMAKE_COMPILER_IS_GNUCXX) endif (CMAKE_COMPILER_IS_GNUCXX) if(CMAKE_C_COMPILER MATCHES "icc") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") - set(CMAKE_CXX_FLAGS_RELEASE"-O2 -DNDEBUG") - set(CMAKE_CXX_FLAGS_DEBUG "-O2 -g -0b0 -noalign") - set(CMAKE_CXX_FLAGS_DEBUGFULL "-g -Ob0 -noalign") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") - set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG") - set(CMAKE_C_FLAGS_DEBUG"-O2 -g -Ob0 -noalign") - set(CMAKE_C_FLAGS_DEBUGFULL"-g -Ob0 -noalign") + set(_save_cxxflags "${CMAKE_CXX_FLAGS}") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}") + set(CMAKE_CXX_FLAGS_RELEASE"-O2 -DNDEBUG ${_save_cxxflags}") + set(CMAKE_CXX_FLAGS_DEBUG "-O2 -g -0b0 -noalign ${_save_cxxflags}") + set(CMAKE_CXX_FLAGS_DEBUGFULL "-g -Ob0 -noalign ${_save_cxxflags}") + set(_save_cflags "${CMAKE_C_FLAGS}") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cflags}") + set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG ${_save_cflags}") + set(CMAKE_C_FLAGS_DEBUG"-O2 -g -Ob0 -noalign ${_save_cflags}") + set(CMAKE_C_FLAGS_DEBUGFULL"-g -Ob0 -noalign ${_save_cflags}") endif(CMAKE_C_COMPILER MATCHES "icc") ___ poppler mailing list poppler@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/poppler