diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2016-06-07 13:11:30 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2016-06-07 13:11:30 +0000 |
commit | 7d3c811ea238e02d3d930ad7cf5e0329302caf65 (patch) | |
tree | 350fce43ff31735e177843215e00afed6de6a84f | |
parent | 4859eef09993c3228d2dce3482106067dad0ced4 (diff) |
poppler 0.44.0
git-svn-id: svn://tug.org/texlive/trunk@41312 c570f23f-e606-0410-a88d-b1316a301751
32 files changed, 667 insertions, 130 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README index 36c60fc7904..dbd307a4464 100644 --- a/Build/source/libs/README +++ b/Build/source/libs/README @@ -49,7 +49,7 @@ mpfr 3.1.4 - checked 07mar16 pixman 0.34.0 - checked 04feb16 http://cairographics.org/releases/ -poppler 0.42.0 - checked 18mar16 +poppler 0.44.0 - checked 07jun16 http://poppler.freedesktop.org/ - used by luatex and xetex potrace 1.13 - checked 28dec15 diff --git a/Build/source/libs/poppler/ChangeLog b/Build/source/libs/poppler/ChangeLog index 332fcdbb43d..f8d652f6a85 100644 --- a/Build/source/libs/poppler/ChangeLog +++ b/Build/source/libs/poppler/ChangeLog @@ -1,15 +1,23 @@ +2016-05-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Import poppler-0.44.0. + * version.ac: Adjust. + +2016-04-29 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Import poppler-0.43.0. + * version.ac: Adjust. + 2016-03-18 Luigi Scarso <luigi.scarso@gmail.com> Import poppler-0.42.0. * version.ac: Adjust. - 2016-02-17 Akira Kakuto <kakuto@fuk.kindai.ac.jp> Import poppler-0.41.0. * version.ac: Adjust. - 2016-02-15 Karl Berry <karl@tug.org> * poppler-PATCHES: rename from poppler-src-PATCHES. diff --git a/Build/source/libs/poppler/configure b/Build/source/libs/poppler/configure index 0d7f9b2a600..d1b7f438257 100755 --- a/Build/source/libs/poppler/configure +++ b/Build/source/libs/poppler/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for poppler (TeX Live) 0.42.0. +# Generated by GNU Autoconf 2.69 for poppler (TeX Live) 0.44.0. # # Report bugs to <tex-k@tug.org>. # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='poppler (TeX Live)' PACKAGE_TARNAME='poppler--tex-live-' -PACKAGE_VERSION='0.42.0' -PACKAGE_STRING='poppler (TeX Live) 0.42.0' +PACKAGE_VERSION='0.44.0' +PACKAGE_STRING='poppler (TeX Live) 0.44.0' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1306,7 +1306,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures poppler (TeX Live) 0.42.0 to adapt to many kinds of systems. +\`configure' configures poppler (TeX Live) 0.44.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1373,7 +1373,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of poppler (TeX Live) 0.42.0:";; + short | recursive ) echo "Configuration of poppler (TeX Live) 0.44.0:";; esac cat <<\_ACEOF @@ -1486,7 +1486,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -poppler (TeX Live) configure 0.42.0 +poppler (TeX Live) configure 0.44.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2076,7 +2076,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by poppler (TeX Live) $as_me 0.42.0, which was +It was created by poppler (TeX Live) $as_me 0.44.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3999,7 +3999,7 @@ fi # Define the identity of the package. PACKAGE='poppler--tex-live-' - VERSION='0.42.0' + VERSION='0.44.0' # Some tools Automake needs. @@ -6578,7 +6578,7 @@ ac_config_headers="$ac_config_headers poppler-config.h:poppler-src/poppler/poppl cat >>confdefs.h <<_ACEOF -#define POPPLER_VERSION "0.42.0" +#define POPPLER_VERSION "0.44.0" _ACEOF @@ -7272,7 +7272,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by poppler (TeX Live) $as_me 0.42.0, which was +This file was extended by poppler (TeX Live) $as_me 0.44.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7338,7 +7338,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -poppler (TeX Live) config.status 0.42.0 +poppler (TeX Live) config.status 0.44.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/Build/source/libs/poppler/poppler-PATCHES/ChangeLog b/Build/source/libs/poppler/poppler-PATCHES/ChangeLog index 2f142c0c71e..fc997a9565b 100644 --- a/Build/source/libs/poppler/poppler-PATCHES/ChangeLog +++ b/Build/source/libs/poppler/poppler-PATCHES/ChangeLog @@ -1,3 +1,17 @@ +2016-05-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Imported poppler-0.44.0 source tree from: + http://poppler.freedesktop.org/ + * patch-02-LLONG_MAX, patch-03-Object-functions: Adapted. + * patch-04-ULLONG-constants: Removed. + +2016-04-29 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Imported poppler-0.43.0 source tree from: + http://poppler.freedesktop.org/ + * patch-02-LLONG_MAX, patch-03-Object-functions, + patch-04-ULLONG-constants: Adapted. + 2016-03-29 Akira Kakuto <kakuto@fuk.kindai.ac.jp> * patch-04-ULLONG-constants: new patch. diff --git a/Build/source/libs/poppler/poppler-PATCHES/TL-Changes b/Build/source/libs/poppler/poppler-PATCHES/TL-Changes index 2a89513c818..d060f7dbf67 100644 --- a/Build/source/libs/poppler/poppler-PATCHES/TL-Changes +++ b/Build/source/libs/poppler/poppler-PATCHES/TL-Changes @@ -1,4 +1,4 @@ -Changes applied to the poppler-0.42.0 tree as obtained from: +Changes applied to the poppler-0.44.0 tree as obtained from: http://poppler.freedesktop.org/ Removed: diff --git a/Build/source/libs/poppler/poppler-PATCHES/patch-02-LLONG_MAX b/Build/source/libs/poppler/poppler-PATCHES/patch-02-LLONG_MAX index 09e5f57303f..6431133c57b 100644 --- a/Build/source/libs/poppler/poppler-PATCHES/patch-02-LLONG_MAX +++ b/Build/source/libs/poppler/poppler-PATCHES/patch-02-LLONG_MAX @@ -1,7 +1,7 @@ -diff -ur poppler-src-orig/goo/GooString.h poppler-src/goo/GooString.h ---- poppler-src-orig/goo/GooString.h 2016-02-19 10:05:07.000000000 +0100 -+++ poppler-src/goo/GooString.h 2016-03-17 10:52:54.000000000 +0100 -@@ -35,6 +35,21 @@ +diff -ur poppler-0.44.0.orig/goo/GooString.h poppler-0.44.0/goo/GooString.h +--- poppler-0.44.0.orig/goo/GooString.h Wed May 11 07:47:44 2016 ++++ poppler-0.44.0/goo/GooString.h Sun May 22 07:38:25 2016 +@@ -36,6 +36,21 @@ #endif #include <limits.h> // for LLONG_MAX and ULLONG_MAX diff --git a/Build/source/libs/poppler/poppler-PATCHES/patch-03-Object-functions b/Build/source/libs/poppler/poppler-PATCHES/patch-03-Object-functions index fdb11e63d87..df2d0032546 100644 --- a/Build/source/libs/poppler/poppler-PATCHES/patch-03-Object-functions +++ b/Build/source/libs/poppler/poppler-PATCHES/patch-03-Object-functions @@ -1,6 +1,6 @@ -diff -ur poppler-src-orig/poppler/Object.h poppler-src/poppler/Object.h ---- poppler-src-orig/poppler/Object.h 2016-03-02 00:35:28.000000000 +0100 -+++ poppler-src/poppler/Object.h 2016-03-17 10:53:37.000000000 +0100 +diff -ur poppler-0.44.0.orig/poppler/Object.h poppler-0.44.0/poppler/Object.h +--- poppler-0.44.0.orig/poppler/Object.h Mon May 02 07:08:03 2016 ++++ poppler-0.44.0/poppler/Object.h Sun May 22 07:42:07 2016 @@ -147,7 +147,7 @@ Object *initStream(Stream *streamA); Object *initRef(int numA, int genA) diff --git a/Build/source/libs/poppler/poppler-src/CMakeLists.txt b/Build/source/libs/poppler/poppler-src/CMakeLists.txt index d385893280b..dd81d27de5c 100644 --- a/Build/source/libs/poppler/poppler-src/CMakeLists.txt +++ b/Build/source/libs/poppler/poppler-src/CMakeLists.txt @@ -22,7 +22,7 @@ if (ECM_FOUND) endif() set(POPPLER_MAJOR_VERSION "0") -set(POPPLER_MINOR_VERSION "42") +set(POPPLER_MINOR_VERSION "44") set(POPPLER_MICRO_VERSION "0") set(POPPLER_VERSION "${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}") @@ -501,7 +501,7 @@ add_library(poppler STATIC ${poppler_SRCS}) else(MSVC) add_library(poppler SHARED ${poppler_SRCS}) endif(MSVC) -set_target_properties(poppler PROPERTIES VERSION 59.0.0 SOVERSION 59) +set_target_properties(poppler PROPERTIES VERSION 61.0.0 SOVERSION 61) target_link_libraries(poppler LINK_PRIVATE ${poppler_LIBS}) install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff --git a/Build/source/libs/poppler/poppler-src/ChangeLog b/Build/source/libs/poppler/poppler-src/ChangeLog index 482e269b19f..8b64962a4f5 100644 --- a/Build/source/libs/poppler/poppler-src/ChangeLog +++ b/Build/source/libs/poppler/poppler-src/ChangeLog @@ -1,3 +1,371 @@ +commit 58f56a7af99b477f39e57aed74443b6851afe15f +Author: Thomas Freitag <Thomas.Freitag@alfa.de> +Date: Sat May 21 18:25:22 2016 +0200 + + Fix Compile in 32bit linux + + Bug #95492 + + poppler/Decrypt.cc | 65 + +++++++++++++++++++++++++++--------------------------- + 1 file changed, 33 insertions(+), 32 deletions(-) + +commit 853e94995255591b35d9bdbeb0174476838097c0 +Author: Adrian Johnson <ajohnson@redneon.com> +Date: Sun Apr 17 16:02:57 2016 +0930 + + pdftocairo: add -antialias option + + Bug 94977 + + poppler/CairoOutputDev.cc | 24 +++++++++++++++++ + poppler/CairoOutputDev.h | 4 ++- + utils/pdftocairo.1 | 26 +++++++++++++++++++ + utils/pdftocairo.cc | 66 + ++++++++++++++++++++++++++++++++++++++++++----- + 4 files changed, 112 insertions(+), 8 deletions(-) + +commit 8453966178de8535cdabac090e78ec17857f8975 +Author: Thomas Freitag <Thomas.Freitag@alfa.de> +Date: Tue May 17 01:00:37 2016 +0200 + + Improve rendering of some dotted lines + + Bug #84693 + + splash/Splash.cc | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +commit 182abe4ed5c0773073c6751a26a7c4e40e99e02e +Author: Thomas Freitag <Thomas.Freitag@alfa.de> +Date: Fri May 13 00:07:24 2016 +0200 + + Splash: type 3 chars. restore the current position also in output + device + + Bug #95344 + + poppler/Gfx.cc | 1 + + 1 file changed, 1 insertion(+) + +commit 9c35dc79ec777d9495796124ac7a42bf2b4cf83f +Author: Jakub Kucharski <jakubkucharski97@gmail.com> +Date: Wed May 11 23:34:53 2016 +0200 + + goo: refactor GooString::Set() + + it is used only once to concatenate strings and it is in a GooString + constructor used specifically for that + so I think concatenation should take place in the constructor and + GooString::Set + should do exactly what it says which is setting the string. + + Bug #94201 + + goo/GooString.cc | 40 ++++++++++++++-------------------------- + goo/GooString.h | 10 +++++----- + 2 files changed, 19 insertions(+), 31 deletions(-) + +commit 0ecec576faf7e1ef644f5973f17e0b8244560912 +Author: Albert Astals Cid <aacid@kde.org> +Date: Wed May 4 23:23:04 2016 +0200 + + Fix typo in GfxPatchMeshShading::parse + + poppler/GfxState.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 890178f9c946931ec34b8b227493ec9f1c6109aa +Author: Albert Astals Cid <aacid@kde.org> +Date: Wed May 4 01:32:47 2016 +0200 + + Fix potential crash in SplashOutputDev::doUpdateFont + + If we delete fontLoc we need to set it to NULL since it's not set + to any value in all of the + branches of this code + + poppler/SplashOutputDev.cc | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 86572d7d2835fdd77e82eeb428e3a56c2d0f271d +Author: Albert Astals Cid <aacid@kde.org> +Date: Wed May 4 01:27:54 2016 +0200 + + Fix memory leak in SignatureHandler::getDefaultFirefoxCertDB_Linux + + poppler/SignatureHandler.cc | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 3707f9d17c5f8a883ddb9614b11676ad49ade5b2 +Author: Albert Astals Cid <aacid@kde.org> +Date: Wed May 4 00:59:01 2016 +0200 + + Fix potential crash in TextPage::coalesce + + When flows is not null flow was still pointing to an now deleted + flow that + may had made it crash in the for loop below + + poppler/TextOutputDev.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 6d26d02c39de6546f57b20c46922f8c56aad78a0 +Author: Albert Astals Cid <aacid@kde.org> +Date: Wed May 4 00:58:12 2016 +0200 + + Remove call that does nothing + + We don't use dict after this call and streamGetDict is a pure getter, + i.e. it doesn't change the stream at all + + poppler/GfxState.cc | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit 56c71fcaae71c2b3cc91bb981715541518e05684 +Author: Albert Astals Cid <aacid@kde.org> +Date: Wed May 4 00:55:06 2016 +0200 + + Fix memory leak in PSOutputDev::filterPSLabel + + poppler/PSOutputDev.cc | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit a0c3fd3f18232c126815a129158e0c4cd3a819a9 +Author: Albert Astals Cid <aacid@kde.org> +Date: Fri Apr 29 00:14:24 2016 +0200 + + New version and soversion + + CMakeLists.txt | 4 ++-- + configure.ac | 2 +- + cpp/Doxyfile | 2 +- + gtk-doc.make | 2 +- + poppler/Makefile.am | 2 +- + qt4/src/Doxyfile | 2 +- + qt5/src/Doxyfile | 2 +- + 7 files changed, 8 insertions(+), 8 deletions(-) + +commit da91593e834d4e617213466331226347f1688a53 +Author: Albert Astals Cid <aacid@kde.org> +Date: Fri Apr 29 00:12:59 2016 +0200 + + News + + NEWS | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +commit bdd25a2583552fe8e72dcf4bc17d9f488b7c1268 +Author: Albert Astals Cid <aacid@kde.org> +Date: Fri Apr 29 00:07:24 2016 +0200 + + Update Cs + + poppler/CairoFontEngine.cc | 2 +- + poppler/CairoOutputDev.cc | 2 +- + poppler/CairoOutputDev.h | 1 + + poppler/GfxFont.cc | 2 +- + utils/pdftocairo.cc | 1 + + 5 files changed, 5 insertions(+), 3 deletions(-) + +commit dbbe1590d49e620ef0743cb1b99b0b5b9a1f36ec +Author: Arseniy Lartsev <arseniy@alumni.chalmers.se> +Date: Thu Apr 28 23:59:05 2016 +0200 + + qt: Fix crash on certain PDF form item activation actions + + Bug #94873 + + qt4/src/poppler-page.cc | 3 ++- + qt5/src/poppler-page.cc | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +commit 1cc93886eee3204e2ccd8bcc8b90306e809255e0 +Author: Thomas Freitag <Thomas.Freitag@alfa.de> +Date: Thu Apr 28 23:53:06 2016 +0200 + + Allow newlines in '<num> <gen> obj' sequence + + Bug #94756 + + poppler/XRef.cc | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +commit a8e3399487258e53df0fd4a79c570c8d71188bed +Author: Takahiro Hashimoto <kenya888.en@gmail.com> +Date: Wed Apr 27 00:16:52 2016 +0200 + + Compile with C++11 compilers that don't define isinfinite + + Bug #94761 + + poppler/SplashOutputDev.cc | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 6eafb6570765605108cf3525f78b10223439ee1d +Author: Pino Toscano <pino@kde.org> +Date: Thu Apr 21 08:30:25 2016 +0200 + + configure: remove unused check for gethostbyname + + configure.ac | 5 ----- + 1 file changed, 5 deletions(-) + +commit d9408c186f9b5c992a4e1492a58dda506d8453ac +Author: Pino Toscano <pino@kde.org> +Date: Sun Apr 10 10:29:05 2016 +0200 + + typo fixes + + - "indentical" -> "identical" + - "numberals" -> "numerals" + - "paremeters" -> "parameters" + + poppler/PageLabelInfo_p.h | 2 +- + qt4/src/poppler-media.cc | 8 ++++---- + qt5/src/poppler-media.cc | 8 ++++---- + utils/pdfimages.1 | 2 +- + 4 files changed, 10 insertions(+), 10 deletions(-) + +commit 5ac54db9150e949ed0e41eec1f19a7f5ec880646 +Author: Pino Toscano <pino@kde.org> +Date: Sun Apr 10 10:16:36 2016 +0200 + + utils: ship pdfsig.1 if pdfsig is built + + utils/Makefile.am | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 92c6799a40b0755ff2d43f33241d442cc5d4e323 +Author: Pino Toscano <pino@kde.org> +Date: Sun Apr 10 09:43:29 2016 +0200 + + remove +x modes + + poppler/SecurityHandler.cc | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) + +commit 9c39db64ba2eb20ca769a103d83a830f406486f0 +Author: Jason Crain <jason@aquaticape.us> +Date: Mon Jan 18 20:56:18 2016 -0600 + + Add SymbolMT as an alias for the Symbol font + + A document using the SymbolMT font will have the wrong glyphs drawn. + Add it as + an alias for the Symbol font so the correct font and encoding + are used. + + Bug #93168 + + poppler/GfxFont.cc | 4 ++++ + 1 file changed, 4 insertions(+) + +commit af332349d7a5e3737ea53608cda2f1cad6159108 +Author: Jason Crain <jason@aquaticape.us> +Date: Mon Mar 28 21:36:52 2016 -0500 + + pdftocairo: Calculate rotation before scaling + + Scaling calculation (-scale-to-x and -scale-to-y) is wrong if a + page is + rotated. Fix by moving scale calculation to after rotation + calculation. + + bug #94655 + + utils/pdftocairo.cc | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit db87dc7fa28537f7532328c278c05d8b60f90d6f +Author: Jason Crain <jason@aquaticape.us> +Date: Sun Feb 21 22:54:15 2016 -0600 + + cairo: save mask state and don't extend image mask + + Don't extend an image mask pattern. Save and restore the mask in + tilingPatternFill. + + bug #94234 + + poppler/CairoOutputDev.cc | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit b68a4ee1dcd1da5b48b2c1f0bb2b6a789ca18ea5 +Author: Jason Crain <jason@aquaticape.us> +Date: Thu Feb 18 01:59:42 2016 -0600 + + cairo: Check if PDF knows the width of 'm' in case of substituted font + + Bug #94054 + + poppler/CairoFontEngine.cc | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit 7d8dfb09d2b9d69d4e80838ce58fdbd091bce7ec +Author: Jason Crain <jason@aquaticape.us> +Date: Sun Feb 28 16:18:05 2016 -0600 + + cairo: fix fillToStrokePathClip crash and rendering + + The cairo backend can crash if the dash pattern changes between + calling + clipToStrokePathClip and fillToStrokePathClip because + fillToStrokePathClip + calls cairo_set_dash with the saved dash pattern but the current + dash count. + + Fixes the crash by removing the call to cairo_get_dash_count in + fillToStrokePathClip. Makes strokePathClip reference counted + because when + drawing tiling patterns it may need to be kept around for more than + one drawing + operation. Uses fillToStrokePathClip in a few more places to fix + rendering. + + bug #62905 + + poppler/CairoOutputDev.cc | 38 ++++++++++++++++++++++++++++++-------- + poppler/CairoOutputDev.h | 1 + + 2 files changed, 31 insertions(+), 8 deletions(-) + +commit 67bc280c4068ae9501053c06ee05341b95a5e6db +Author: Thomas Freitag <Thomas.Freitag@alfa.de> +Date: Sun Mar 20 12:39:24 2016 +0100 + + Implement sanity check for linearization usage + + Bug #92482 + + poppler/PDFDoc.cc | 42 +++++++++++++++++++++++++++++++++++++++++- + poppler/PDFDoc.h | 7 ++++++- + 2 files changed, 47 insertions(+), 2 deletions(-) + +commit a24ac96e9f5c914c1c979319ca1043dabd334763 +Author: Albert Astals Cid <aacid@kde.org> +Date: Thu Mar 17 00:08:37 2016 +0100 + + meh typo + + NEWS | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f8ff943650e7e2a4cb836be43bf04907a5e156fc +Author: Albert Astals Cid <aacid@kde.org> +Date: Wed Mar 16 23:40:00 2016 +0100 + + 0.42 + + CMakeLists.txt | 4 ++-- + Makefile.am | 1 + + NEWS | 28 ++++++++++++++++++++++++++++ + configure.ac | 2 +- + cpp/Doxyfile | 2 +- + poppler/Makefile.am | 4 ++-- + qt4/src/Doxyfile | 2 +- + qt5/src/Doxyfile | 2 +- + 8 files changed, 37 insertions(+), 8 deletions(-) + commit ef21f651a4af801502d6b4b4f7258d54f14e7aea Author: Albert Astals Cid <aacid@kde.org> Date: Wed Mar 16 20:23:39 2016 +0100 diff --git a/Build/source/libs/poppler/poppler-src/NEWS b/Build/source/libs/poppler/poppler-src/NEWS index 19812f9d9c8..558efd8133e 100644 --- a/Build/source/libs/poppler/poppler-src/NEWS +++ b/Build/source/libs/poppler/poppler-src/NEWS @@ -1,4 +1,40 @@ -Release 0.41.0 +Release 0.44.0 + core: + * Fix Compile in 32bit linux. Bug #95492 + * Splash: type 3 chars. restore the current position also in output device. Bug #95344 + * Splash: Improve rendering of some dotted lines. Bug #84693 + * Refactor GooString::Set(). Bug #94201 + * Fix typo in GfxPatchMeshShading::parse + * Fix memory leak in PSOutputDev::filterPSLabel + * Fix memory leak in SignatureHandler::getDefaultFirefoxCertDB_Linux + * Fix potential crash in SplashOutputDev::doUpdateFont + * Fix potential crash in TextPage::coalesce + * Remove call that does nothing + + utils: + * pdftocairo: add -antialias option. Bug #94977 + +Release 0.43.0 + core: + * Implement sanity check for linearization usage. Bug #92482 + * Add SymbolMT as an alias for the Symbol font. Bug #93168 + * Fix some blank files. Bug #94756 + * cairo: fix fillToStrokePathClip crash and rendering. Bug #62905 + * cairo: Check if PDF knows the width of 'm' in case of substituted font. Bug #94054 + * cairo: save mask state and don't extend image mask. bug #94234 + * SplashOuputDev: Compile with C++11 compilers that don't define isinfinite. Bug #94761 + * typo fixes + + utils: + * pdftocairo: Calculate rotation before scaling. Bug #94655 + + qt4: + * Fix crash on certain PDF form item activation actions. Bug #94873 + + qt5: + * Fix crash on certain PDF form item activation actions. Bug #94873 + +Release 0.42.0 core: * Add the support for version 5 + revision 6 documents. Bug #85368 * Add initial support for Signature handling diff --git a/Build/source/libs/poppler/poppler-src/configure.ac b/Build/source/libs/poppler/poppler-src/configure.ac index 57639ad57e0..8ff8ea50116 100644 --- a/Build/source/libs/poppler/poppler-src/configure.ac +++ b/Build/source/libs/poppler/poppler-src/configure.ac @@ -1,5 +1,5 @@ m4_define([poppler_version_major],[0]) -m4_define([poppler_version_minor],[42]) +m4_define([poppler_version_minor],[44]) m4_define([poppler_version_micro],[0]) m4_define([poppler_version],[poppler_version_major.poppler_version_minor.poppler_version_micro]) @@ -181,11 +181,6 @@ AC_CHECK_FUNC(gmtime_r, AC_DEFINE(HAVE_GMTIME_R, 1, [Defines if gmtime_r is avai AC_CHECK_FUNC(rand_r, AC_DEFINE(HAVE_RAND_R, 1, [Defines if rand_r is available on your system])) dnl ##### Check for extra libraries needed by X. (LynxOS needs this.) -AC_CHECK_FUNC(gethostbyname) -if test $ac_cv_func_gethostbyname = no; then - AC_CHECK_LIB(bsd, gethostbyname, X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd") -fi - AC_CHECK_FUNC(nanosleep,,) dnl try in librt if not found in current LIBS if test x$ac_cv_func_nanosleep = xno diff --git a/Build/source/libs/poppler/poppler-src/goo/GooString.cc b/Build/source/libs/poppler/poppler-src/goo/GooString.cc index 3f22f368560..de9c93c9125 100644 --- a/Build/source/libs/poppler/poppler-src/goo/GooString.cc +++ b/Build/source/libs/poppler/poppler-src/goo/GooString.cc @@ -25,6 +25,7 @@ // Copyright (C) 2012 Pino Toscano <pino@kde.org> // Copyright (C) 2013 Jason Crain <jason@aquaticape.us> // Copyright (C) 2015 William Bader <williambader@hotmail.com> +// Copyright (C) 2016 Jakub Kucharski <jakubkucharski97@gmail.com> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -176,37 +177,22 @@ void inline GooString::resize(int newLength) { s[length] = '\0'; } -GooString* GooString::Set(const char *s1, int s1Len, const char *s2, int s2Len) +GooString* GooString::Set(const char *newStr, int newLen) { - int newLen = 0; - char *p; - - if (s1) { - if (CALC_STRING_LEN == s1Len) { - s1Len = strlen(s1); - } else - assert(s1Len >= 0); - newLen += s1Len; + if (!newStr) { + clear(); + return this; } - if (s2) { - if (CALC_STRING_LEN == s2Len) { - s2Len = strlen(s2); - } else - assert(s2Len >= 0); - newLen += s2Len; + if (newLen == CALC_STRING_LEN) { + newLen = strlen(newStr); + } else { + assert(newLen >= 0); } resize(newLen); - p = s; - if (s1) { - memcpy(p, s1, s1Len); - p += s1Len; - } - if (s2) { - memcpy(p, s2, s2Len); - p += s2Len; - } + memmove(s, newStr, newLen); + return this; } @@ -244,7 +230,9 @@ GooString::GooString(const GooString *str) { GooString::GooString(GooString *str1, GooString *str2) { s = NULL; length = 0; - Set(str1->getCString(), str1->length, str2->getCString(), str2->length); + resize(str1->length + str2->length); + memcpy(s, str1->getCString(), str1->length); + memcpy(s + str1->length, str2->getCString(), str2->length); } GooString *GooString::fromInt(int x) { diff --git a/Build/source/libs/poppler/poppler-src/goo/GooString.h b/Build/source/libs/poppler/poppler-src/goo/GooString.h index cca5a905e97..3168dff181c 100644 --- a/Build/source/libs/poppler/poppler-src/goo/GooString.h +++ b/Build/source/libs/poppler/poppler-src/goo/GooString.h @@ -21,6 +21,7 @@ // Copyright (C) 2012-2014 Fabio D'Urso <fabiodurso@hotmail.it> // Copyright (C) 2013 Jason Crain <jason@aquaticape.us> // Copyright (C) 2015 Adam Reichold <adam.reichold@t-online.de> +// Copyright (C) 2016 Jakub Kucharski <jakubkucharski97@gmail.com> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -80,11 +81,10 @@ public: // Create a string from <lengthA> chars at <idx> in <str>. GooString(GooString *str, int idx, int lengthA); - // Set content of a string to concatination of <s1> and <s2>. They can both - // be NULL. if <s1Len> or <s2Len> is CALC_STRING_LEN, then length of the string - // will be calculated with strlen(). Otherwise we assume they are a valid - // length of string (or its substring) - GooString* Set(const char *s1, int s1Len=CALC_STRING_LEN, const char *s2=NULL, int s2Len=CALC_STRING_LEN); + // Set content of a string to <newStr>. If <newLen> is CALC_STRING_LEN, then + // length of the string will be calculated with strlen(). Otherwise we assume + // this is a valid length of <newStr> (or its substring) + GooString* Set(const char *newStr, int newLen=CALC_STRING_LEN); // Copy a string. explicit GooString(const GooString *str); diff --git a/Build/source/libs/poppler/poppler-src/gtk-doc.make b/Build/source/libs/poppler/poppler-src/gtk-doc.make index 45a3350e1d9..e4a12a5b255 100644 --- a/Build/source/libs/poppler/poppler-src/gtk-doc.make +++ b/Build/source/libs/poppler/poppler-src/gtk-doc.make @@ -142,7 +142,7 @@ GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V)) GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) GTK_DOC_V_XML_0=@echo " DOC Building XML"; -sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ diff --git a/Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.cc b/Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.cc index 3cff917a425..e13607f9cf3 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.cc @@ -27,7 +27,7 @@ // Copyright (C) 2010 Jan Kümmel <jan+freedesktop@snorc.org> // Copyright (C) 2012 Hib Eris <hib@hiberis.nl> // Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de> -// Copyright (C) 2015 Jason Crain <jason@aquaticape.us> +// Copyright (C) 2015, 2016 Jason Crain <jason@aquaticape.us> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -113,7 +113,7 @@ CairoFont::getGlyph(CharCode code, double CairoFont::getSubstitutionCorrection(GfxFont *gfxFont) { - double w1, w2; + double w1, w2, w3; CharCode code; char *name; @@ -143,7 +143,8 @@ CairoFont::getSubstitutionCorrection(GfxFont *gfxFont) cairo_font_options_destroy(options); w2 = extents.x_advance; } - if (!gfxFont->isSymbolic()) { + w3 = ((Gfx8BitFont *)gfxFont)->getWidth(0); + if (!gfxFont->isSymbolic() && w2 > 0 && w1 > w3) { // if real font is substantially narrower than substituted // font, reduce the font size accordingly if (w1 > 0.01 && w1 < 0.9 * w2) { diff --git a/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc b/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc index d0d6cb43f11..9f892b23b3e 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc @@ -27,7 +27,7 @@ // Copyright (C) 2009, 2010 David Benjamin <davidben@mit.edu> // Copyright (C) 2011-2014 Thomas Freitag <Thomas.Freitag@alfa.de> // Copyright (C) 2012 Patrick Pfeifer <p2000@mailinator.com> -// Copyright (C) 2012, 2015 Jason Crain <jason@aquaticape.us> +// Copyright (C) 2012, 2015, 2016 Jason Crain <jason@aquaticape.us> // Copyright (C) 2015 Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp> // // To see a description of the changes please see the Changelog file that @@ -206,6 +206,7 @@ void CairoOutputDev::setCairo(cairo_t *cairo) /* save the initial matrix so that we can use it for type3 fonts. */ //XXX: is this sufficient? could we miss changes to the matrix somehow? cairo_get_matrix(cairo, &orig_matrix); + setAntialias(cairo, antialias); } else { this->cairo = NULL; this->cairo_shape = NULL; @@ -228,6 +229,26 @@ void CairoOutputDev::setTextPage(TextPage *text) } } +void CairoOutputDev::setAntialias(cairo_antialias_t antialias) +{ + this->antialias = antialias; + if (cairo) + setAntialias (cairo, antialias); + if (cairo_shape) + setAntialias (cairo_shape, antialias); +} + +void CairoOutputDev::setAntialias(cairo_t *cr, cairo_antialias_t antialias) +{ + cairo_font_options_t *font_options; + cairo_set_antialias (cairo, antialias); + font_options = cairo_font_options_create (); + cairo_get_font_options (cr, font_options); + cairo_font_options_set_antialias (font_options, antialias); + cairo_set_font_options (cr, font_options); + cairo_font_options_destroy (font_options); +} + void CairoOutputDev::startDoc(PDFDoc *docA, CairoFontEngine *parentFontEngine) { doc = docA; @@ -278,6 +299,9 @@ void CairoOutputDev::saveState(GfxState *state) { ms->mask_matrix = mask_matrix; ms->next = maskStack; maskStack = ms; + + if (strokePathClip) + strokePathClip->ref_count++; } void CairoOutputDev::restoreState(GfxState *state) { @@ -305,6 +329,14 @@ void CairoOutputDev::restoreState(GfxState *state) { maskStack = ms->next; delete ms; } + + if (strokePathClip && --strokePathClip->ref_count == 0) { + delete strokePathClip->path; + if (strokePathClip->dashes) + gfree (strokePathClip->dashes); + gfree (strokePathClip); + strokePathClip = NULL; + } } void CairoOutputDev::updateAll(GfxState *state) { @@ -780,7 +812,14 @@ void CairoOutputDev::stroke(GfxState *state) { align_stroke_coords = gFalse; cairo_set_source (cairo, stroke_pattern); LOG(printf ("stroke\n")); - cairo_stroke (cairo); + if (strokePathClip) { + cairo_push_group (cairo); + cairo_stroke (cairo); + cairo_pop_group_to_source (cairo); + fillToStrokePathClip (state); + } else { + cairo_stroke (cairo); + } if (cairo_shape) { doPath (cairo_shape, state, state->getPath()); cairo_stroke (cairo_shape); @@ -803,6 +842,11 @@ void CairoOutputDev::fill(GfxState *state) { if (mask) { cairo_save (cairo); cairo_clip (cairo); + if (strokePathClip) { + cairo_push_group (cairo); + fillToStrokePathClip (state); + cairo_pop_group_to_source (cairo); + } cairo_set_matrix (cairo, &mask_matrix); cairo_mask (cairo, mask); cairo_restore (cairo); @@ -859,6 +903,7 @@ GBool CairoOutputDev::tilingPatternFill(GfxState *state, Gfx *gfxA, Catalog *cat int surface_width, surface_height; StrokePathClip *strokePathTmp; GBool adjusted_stroke_width_tmp; + cairo_pattern_t *maskTmp; width = bbox[2] - bbox[0]; height = bbox[3] - bbox[1]; @@ -889,6 +934,7 @@ GBool CairoOutputDev::tilingPatternFill(GfxState *state, Gfx *gfxA, Catalog *cat old_cairo = cairo; cairo = cairo_create (surface); cairo_surface_destroy (surface); + setAntialias(cairo, antialias); cairo_scale (cairo, surface_width / width, surface_height / height); box.x1 = bbox[0]; box.y1 = bbox[1]; @@ -896,6 +942,8 @@ GBool CairoOutputDev::tilingPatternFill(GfxState *state, Gfx *gfxA, Catalog *cat strokePathTmp = strokePathClip; strokePathClip = NULL; adjusted_stroke_width_tmp = adjusted_stroke_width; + maskTmp = mask; + mask = NULL; gfx = new Gfx(doc, this, resDict, &box, NULL, NULL, NULL, gfxA->getXRef()); if (paintType == 2) inUncoloredPattern = gTrue; @@ -905,6 +953,7 @@ GBool CairoOutputDev::tilingPatternFill(GfxState *state, Gfx *gfxA, Catalog *cat delete gfx; strokePathClip = strokePathTmp; adjusted_stroke_width = adjusted_stroke_width_tmp; + mask = maskTmp; pattern = cairo_pattern_create_for_surface (cairo_get_target (cairo)); cairo_destroy (cairo); @@ -1296,6 +1345,7 @@ void CairoOutputDev::clipToStrokePath(GfxState *state) { strokePathClip->cap = cairo_get_line_cap (cairo); strokePathClip->join = cairo_get_line_join (cairo); strokePathClip->miter = cairo_get_miter_limit (cairo); + strokePathClip->ref_count = 1; } void CairoOutputDev::fillToStrokePathClip(GfxState *state) { @@ -1303,7 +1353,6 @@ void CairoOutputDev::fillToStrokePathClip(GfxState *state) { cairo_set_matrix (cairo, &strokePathClip->ctm); cairo_set_line_width (cairo, strokePathClip->line_width); - strokePathClip->dash_count = cairo_get_dash_count (cairo); cairo_set_dash (cairo, strokePathClip->dashes, strokePathClip->dash_count, strokePathClip->dash_offset); cairo_set_line_cap (cairo, strokePathClip->cap); cairo_set_line_join (cairo, strokePathClip->join); @@ -1312,12 +1361,6 @@ void CairoOutputDev::fillToStrokePathClip(GfxState *state) { cairo_stroke (cairo); cairo_restore (cairo); - - delete strokePathClip->path; - if (strokePathClip->dashes) - gfree (strokePathClip->dashes); - gfree (strokePathClip); - strokePathClip = NULL; } void CairoOutputDev::beginString(GfxState *state, GooString *s) @@ -1590,6 +1633,7 @@ void CairoOutputDev::beginTransparencyGroup(GfxState * /*state*/, double * /*bbo cairo_surface_t *cairo_shape_surface = cairo_surface_create_similar_clip (cairo, CAIRO_CONTENT_ALPHA); cairo_shape = cairo_create (cairo_shape_surface); cairo_surface_destroy (cairo_shape_surface); + setAntialias(cairo_shape, antialias); /* the color doesn't matter as long as it is opaque */ cairo_set_source_rgb (cairo_shape, 0, 0, 0); @@ -1744,6 +1788,7 @@ void CairoOutputDev::setSoftMask(GfxState * state, double * bbox, GBool alpha, cairo_surface_t *source = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); cairo_t *maskCtx = cairo_create(source); + setAntialias(maskCtx, antialias); //XXX: hopefully this uses the correct color space */ if (!alpha && groupColorSpaceStack->cs) { @@ -2396,7 +2441,6 @@ void CairoOutputDev::drawImageMaskPrescaled(GfxState *state, Object *ref, Stream * images with CAIRO_FILTER_NEAREST to look really bad */ cairo_pattern_set_filter (pattern, interpolate ? CAIRO_FILTER_BEST : CAIRO_FILTER_FAST); - cairo_pattern_set_extend (pattern, CAIRO_EXTEND_PAD); if (state->getFillColorSpace()->getMode() == csPattern) { cairo_matrix_init_translate (&matrix, 0, scaledHeight); @@ -2425,6 +2469,11 @@ void CairoOutputDev::drawImageMaskPrescaled(GfxState *state, Object *ref, Stream cairo_rectangle (cairo, 0., 0., scaledWidth, scaledHeight); cairo_clip (cairo); + if (strokePathClip) { + cairo_push_group (cairo); + fillToStrokePathClip (state); + cairo_pop_group_to_source (cairo); + } cairo_mask (cairo, pattern); //cairo_get_matrix(cairo, &matrix); diff --git a/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.h b/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.h index c146ce01b76..3a6dbfa4648 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.h +++ b/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.h @@ -22,6 +22,7 @@ // Copyright (C) 2008 Michael Vrable <mvrable@cs.ucsd.edu> // Copyright (C) 2010-2013 Thomas Freitag <Thomas.Freitag@alfa.de> // Copyright (C) 2015 Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp> +// Copyright (C) 2016 Jason Crain <jason@aquaticape.us> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -265,6 +266,7 @@ public: void setCairo (cairo_t *cr); void setTextPage (TextPage *text); void setPrinting (GBool printing) { this->printing = printing; needFontUpdate = gTrue; } + void setAntialias(cairo_antialias_t antialias); void setInType3Char(GBool inType3Char) { this->inType3Char = inType3Char; } void getType3GlyphWidth (double *wx, double *wy) { *wx = t3_glyph_wx; *wy = t3_glyph_wy; } @@ -287,6 +289,7 @@ protected: #if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 14, 0) GBool setMimeDataForJBIG2Globals (Stream *str, cairo_surface_t *image); #endif + void setAntialias(cairo_t *cr, cairo_antialias_t antialias); GfxRGB fill_color, stroke_color; cairo_pattern_t *fill_pattern, *stroke_pattern; @@ -308,6 +311,7 @@ protected: cairo_line_cap_t cap; cairo_line_join_t join; double miter; + int ref_count; } *strokePathClip; PDFDoc *doc; // the current document @@ -338,7 +342,7 @@ protected: double t3_glyph_wx, t3_glyph_wy; GBool t3_glyph_has_bbox; double t3_glyph_bbox[4]; - + cairo_antialias_t antialias; GBool prescaleImages; TextPage *text; // text for the current page diff --git a/Build/source/libs/poppler/poppler-src/poppler/Decrypt.cc b/Build/source/libs/poppler/poppler-src/poppler/Decrypt.cc index 4229b06d1ae..cfc9676f8ae 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/Decrypt.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/Decrypt.cc @@ -20,6 +20,7 @@ // Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it> // Copyright (C) 2013 Adrian Johnson <ajohnson@redneon.com> // Copyright (C) 2016 Alok Anand <alok4nand@gmail.com> +// Copyright (C) 2016 Thomas Freitag <Thomas.Freitag@alfa.de> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -1444,22 +1445,22 @@ static void sha256(Guchar *msg, int msgLen, Guchar *hash) { //------------------------------------------------------------------------ // SHA 384 and SHA 512 use the same sequence of eighty constant 64 bit words. static const uint64_t K[80] = { - 0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, - 0x59f111f1b605d019ULL, 0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL, 0xd807aa98a3030242ULL, 0x12835b0145706fbeULL, - 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL, 0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL, 0x9bdc06a725c71235ULL, - 0xc19bf174cf692694ULL, 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL, 0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL, - 0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL, 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL, 0x983e5152ee66dfabULL, - 0xa831c66d2db43210ULL, 0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL, 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL, - 0x06ca6351e003826fULL, 0x142929670a0e6e70ULL, 0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL, 0x4d2c6dfc5ac42aedULL, - 0x53380d139d95b3dfULL, 0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL, 0x81c2c92e47edaee6ULL, 0x92722c851482353bULL, - 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL, 0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL, 0xd192e819d6ef5218ULL, - 0xd69906245565a910ULL, 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL, 0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL, - 0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL, 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL, 0x5b9cca4f7763e373ULL, - 0x682e6ff3d6b2b8a3ULL, 0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL, 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL, - 0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL, 0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL, 0xca273eceea26619cULL, - 0xd186b8c721c0c207ULL, 0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL, 0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL, - 0x113f9804bef90daeULL, 0x1b710b35131c471bULL, 0x28db77f523047d84ULL, 0x32caab7b40c72493ULL, 0x3c9ebe0a15c9bebcULL, - 0x431d67c49c100d4cULL, 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL, 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL + 0x428a2f98d728ae22ull, 0x7137449123ef65cdull, 0xb5c0fbcfec4d3b2full, 0xe9b5dba58189dbbcull, 0x3956c25bf348b538ull, + 0x59f111f1b605d019ull, 0x923f82a4af194f9bull, 0xab1c5ed5da6d8118ull, 0xd807aa98a3030242ull, 0x12835b0145706fbeull, + 0x243185be4ee4b28cull, 0x550c7dc3d5ffb4e2ull, 0x72be5d74f27b896full, 0x80deb1fe3b1696b1ull, 0x9bdc06a725c71235ull, + 0xc19bf174cf692694ull, 0xe49b69c19ef14ad2ull, 0xefbe4786384f25e3ull, 0x0fc19dc68b8cd5b5ull, 0x240ca1cc77ac9c65ull, + 0x2de92c6f592b0275ull, 0x4a7484aa6ea6e483ull, 0x5cb0a9dcbd41fbd4ull, 0x76f988da831153b5ull, 0x983e5152ee66dfabull, + 0xa831c66d2db43210ull, 0xb00327c898fb213full, 0xbf597fc7beef0ee4ull, 0xc6e00bf33da88fc2ull, 0xd5a79147930aa725ull, + 0x06ca6351e003826full, 0x142929670a0e6e70ull, 0x27b70a8546d22ffcull, 0x2e1b21385c26c926ull, 0x4d2c6dfc5ac42aedull, + 0x53380d139d95b3dfull, 0x650a73548baf63deull, 0x766a0abb3c77b2a8ull, 0x81c2c92e47edaee6ull, 0x92722c851482353bull, + 0xa2bfe8a14cf10364ull, 0xa81a664bbc423001ull, 0xc24b8b70d0f89791ull, 0xc76c51a30654be30ull, 0xd192e819d6ef5218ull, + 0xd69906245565a910ull, 0xf40e35855771202aull, 0x106aa07032bbd1b8ull, 0x19a4c116b8d2d0c8ull, 0x1e376c085141ab53ull, + 0x2748774cdf8eeb99ull, 0x34b0bcb5e19b48a8ull, 0x391c0cb3c5c95a63ull, 0x4ed8aa4ae3418acbull, 0x5b9cca4f7763e373ull, + 0x682e6ff3d6b2b8a3ull, 0x748f82ee5defb2fcull, 0x78a5636f43172f60ull, 0x84c87814a1f0ab72ull, 0x8cc702081a6439ecull, + 0x90befffa23631e28ull, 0xa4506cebde82bde9ull, 0xbef9a3f7b2c67915ull, 0xc67178f2e372532bull, 0xca273eceea26619cull, + 0xd186b8c721c0c207ull, 0xeada7dd6cde0eb1eull, 0xf57d4f7fee6ed178ull, 0x06f067aa72176fbaull, 0x0a637dc5a2c898a6ull, + 0x113f9804bef90daeull, 0x1b710b35131c471bull, 0x28db77f523047d84ull, 0x32caab7b40c72493ull, 0x3c9ebe0a15c9bebcull, + 0x431d67c49c100d4cull, 0x4cc5d4becb3e42b6ull, 0x597f299cfc657e2aull, 0x5fcb6fab3ad6faecull, 0x6c44198c4a475817ull }; static inline uint64_t rotr(uint64_t x, uint64_t n) { @@ -1548,14 +1549,14 @@ static void sha512(Guchar *msg, int msgLen, Guchar *hash) { uint64_t H[8]; int blkLen = 0, i; // setting the initial hash value. - H[0] = 0x6a09e667f3bcc908ULL; - H[1] = 0xbb67ae8584caa73bULL; - H[2] = 0x3c6ef372fe94f82bULL; - H[3] = 0xa54ff53a5f1d36f1ULL; - H[4] = 0x510e527fade682d1ULL; - H[5] = 0x9b05688c2b3e6c1fULL; - H[6] = 0x1f83d9abfb41bd6bULL; - H[7] = 0x5be0cd19137e2179ULL; + H[0] = 0x6a09e667f3bcc908ull; + H[1] = 0xbb67ae8584caa73bull; + H[2] = 0x3c6ef372fe94f82bull; + H[3] = 0xa54ff53a5f1d36f1ull; + H[4] = 0x510e527fade682d1ull; + H[5] = 0x9b05688c2b3e6c1full; + H[6] = 0x1f83d9abfb41bd6bull; + H[7] = 0x5be0cd19137e2179ull; for (i = 0; i + 128 <= msgLen; i += 128) { sha512HashBlock(msg + i, H); @@ -1620,14 +1621,14 @@ static void sha384(Guchar *msg, int msgLen, Guchar *hash) { uint64_t H[8]; int blkLen, i; //setting initial hash values - H[0] = 0xcbbb9d5dc1059ed8ULL; - H[1] = 0x629a292a367cd507ULL; - H[2] = 0x9159015a3070dd17ULL; - H[3] = 0x152fecd8f70e5939ULL; - H[4] = 0x67332667ffc00b31ULL; - H[5] = 0x8eb44a8768581511ULL; - H[6] = 0xdb0c2e0d64f98fa7ULL; - H[7] = 0x47b5481dbefa4fa4ULL; + H[0] = 0xcbbb9d5dc1059ed8ull; + H[1] = 0x629a292a367cd507ull; + H[2] = 0x9159015a3070dd17ull; + H[3] = 0x152fecd8f70e5939ull; + H[4] = 0x67332667ffc00b31ull; + H[5] = 0x8eb44a8768581511ull; + H[6] = 0xdb0c2e0d64f98fa7ull; + H[7] = 0x47b5481dbefa4fa4ull; //SHA 384 will use the same sha512HashBlock function. blkLen = 0; for (i = 0; i + 128 <= msgLen; i += 128) { diff --git a/Build/source/libs/poppler/poppler-src/poppler/Gfx.cc b/Build/source/libs/poppler/poppler-src/poppler/Gfx.cc index cc6b66d767f..7d748b9ea17 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/Gfx.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/Gfx.cc @@ -4046,6 +4046,7 @@ void Gfx::doShowText(GooString *s) { curX += tdx; curY += tdy; state->moveTo(curX, curY); + out->updateCTM(state, 0, 0, 0, 0, 0, 0); p += n; len -= n; } diff --git a/Build/source/libs/poppler/poppler-src/poppler/GfxFont.cc b/Build/source/libs/poppler/poppler-src/poppler/GfxFont.cc index 81f59037f7f..ea23e03a534 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/GfxFont.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/GfxFont.cc @@ -30,7 +30,7 @@ // Copyright (C) 2012 Yi Yang <ahyangyi@gmail.com> // Copyright (C) 2012 Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp> // Copyright (C) 2012 Thomas Freitag <Thomas.Freitag@alfa.de> -// Copyright (C) 2013-2015 Jason Crain <jason@aquaticape.us> +// Copyright (C) 2013-2016 Jason Crain <jason@aquaticape.us> // Copyright (C) 2014 Olly Betts <olly@survex.com> // // To see a description of the changes please see the Changelog file that @@ -118,6 +118,10 @@ static const Base14FontMapEntry base14FontMap[] = { { "Symbol,Bold", "Symbol" }, { "Symbol,BoldItalic", "Symbol" }, { "Symbol,Italic", "Symbol" }, + { "SymbolMT", "Symbol" }, + { "SymbolMT,Bold", "Symbol" }, + { "SymbolMT,BoldItalic", "Symbol" }, + { "SymbolMT,Italic", "Symbol" }, { "Times-Bold", "Times-Bold" }, { "Times-BoldItalic", "Times-BoldItalic" }, { "Times-Italic", "Times-Italic" }, diff --git a/Build/source/libs/poppler/poppler-src/poppler/GfxState.cc b/Build/source/libs/poppler/poppler-src/poppler/GfxState.cc index 25196b40be8..d3ea481d19e 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/GfxState.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/GfxState.cc @@ -16,7 +16,7 @@ // Copyright (C) 2005 Kristian Høgsberg <krh@redhat.com> // Copyright (C) 2006, 2007 Jeff Muizelaar <jeff@infidigm.net> // Copyright (C) 2006, 2010 Carlos Garcia Campos <carlosgc@gnome.org> -// Copyright (C) 2006-2015 Albert Astals Cid <aacid@kde.org> +// Copyright (C) 2006-2016 Albert Astals Cid <aacid@kde.org> // Copyright (C) 2009, 2012 Koji Otani <sho@bbr.jp> // Copyright (C) 2009, 2011-2016 Thomas Freitag <Thomas.Freitag@alfa.de> // Copyright (C) 2009 Christian Persch <chpe@gnome.org> @@ -2033,7 +2033,6 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr, OutputDev *out, GfxState #ifdef USE_CMS arr->get(1, &obj1); - dict = obj1.streamGetDict(); Guchar *profBuf; Stream *iccStream = obj1.getStream(); int length = 0; @@ -5548,7 +5547,7 @@ GfxPatchMeshShading *GfxPatchMeshShading::parse(GfxResources *res, int typeA, Di p->x[1][0] = x[7]; p->y[1][0] = y[7]; for (j = 0; j < nComps; ++j) { - p->color[0][1].c[j] = patchesA[nPatchesA-1].color[1][0].c[j]; + p->color[0][0].c[j] = patchesA[nPatchesA-1].color[1][0].c[j]; p->color[0][1].c[j] = patchesA[nPatchesA-1].color[0][0].c[j]; p->color[1][1].c[j] = c[0][j]; p->color[1][0].c[j] = c[1][j]; diff --git a/Build/source/libs/poppler/poppler-src/poppler/Makefile.am b/Build/source/libs/poppler/poppler-src/poppler/Makefile.am index df64dbfa4cf..3eef543a356 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/Makefile.am +++ b/Build/source/libs/poppler/poppler-src/poppler/Makefile.am @@ -327,7 +327,7 @@ libpoppler_la_LIBADD = \ $(win32_libs) libpoppler_la_LDFLAGS = \ - -version-info 59:0:0 \ + -version-info 61:0:0 \ @create_shared_lib@ \ @auto_import_flags@ diff --git a/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.cc b/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.cc index f052772ec08..9fc43e53b7e 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.cc @@ -544,10 +544,50 @@ Linearization *PDFDoc::getLinearization() { if (!linearization) { linearization = new Linearization(str); + linearizationState = 0; } return linearization; } +GBool PDFDoc::checkLinearization() { + if (linearization == NULL) + return gFalse; + if (linearizationState == 1) + return gTrue; + if (linearizationState == 2) + return gFalse; + if (!hints) { + hints = new Hints(str, linearization, getXRef(), secHdlr); + } + for (int page = 1; page <= linearization->getNumPages(); page++) { + Object obj; + Ref pageRef; + + pageRef.num = hints->getPageObjectNum(page); + if (!pageRef.num) { + linearizationState = 2; + return gFalse; + } + + // check for bogus ref - this can happen in corrupted PDF files + if (pageRef.num < 0 || pageRef.num >= xref->getNumObjects()) { + linearizationState = 2; + return gFalse; + } + + pageRef.gen = xref->getEntry(pageRef.num)->gen; + xref->fetch(pageRef.num, pageRef.gen, &obj); + if (!obj.isDict("Page")) { + obj.free(); + linearizationState = 2; + return gFalse; + } + obj.free(); + } + linearizationState = 1; + return gTrue; +} + GBool PDFDoc::isLinearized(GBool tryingToReconstruct) { if ((str->getLength()) && (getLinearization()->getLength() == str->getLength())) @@ -1963,7 +2003,7 @@ Page *PDFDoc::getPage(int page) { if ((page < 1) || page > getNumPages()) return NULL; - if (isLinearized()) { + if (isLinearized() && checkLinearization()) { pdfdocLocker(); if (!pageCache) { pageCache = (Page **) gmallocn(getNumPages(), sizeof(Page *)); diff --git a/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.h b/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.h index 0bb15c4b3e6..3a65ecb85ec 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.h +++ b/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.h @@ -22,7 +22,7 @@ // Copyright (C) 2009 Kovid Goyal <kovid@kovidgoyal.net> // Copyright (C) 2010, 2014 Hib Eris <hib@hiberis.nl> // Copyright (C) 2010 Srinivas Adicherla <srinivas.adicherla@geodesic.com> -// Copyright (C) 2011, 2013, 2014 Thomas Freitag <Thomas.Freitag@alfa.de> +// Copyright (C) 2011, 2013, 2014, 2016 Thomas Freitag <Thomas.Freitag@alfa.de> // Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it> // Copyright (C) 2013 Adrian Johnson <ajohnson@redneon.com> // Copyright (C) 2013 Adam Reichold <adamreichold@myopera.com> @@ -111,6 +111,7 @@ public: // Get the linearization table. Linearization *getLinearization(); + GBool checkLinearization(); // Get the xref table. XRef *getXRef() { return xref; } @@ -324,6 +325,10 @@ private: int pdfMajorVersion; int pdfMinorVersion; Linearization *linearization; + // linearizationState = 0: unchecked + // linearizationState = 1: checked and valid + // linearizationState = 2: checked and invalid + int linearizationState; XRef *xref; SecurityHandler *secHdlr; Catalog *catalog; diff --git a/Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc b/Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc index a260727bf44..204f16e85f3 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc @@ -15,7 +15,7 @@ // // Copyright (C) 2005 Martin Kretzschmar <martink@gnome.org> // Copyright (C) 2005, 2006 Kristian Høgsberg <krh@redhat.com> -// Copyright (C) 2006-2009, 2011-2013, 2015 Albert Astals Cid <aacid@kde.org> +// Copyright (C) 2006-2009, 2011-2013, 2015, 2016 Albert Astals Cid <aacid@kde.org> // Copyright (C) 2006 Jeff Muizelaar <jeff@infidigm.net> // Copyright (C) 2007, 2008 Brad Hards <bradh@kde.org> // Copyright (C) 2008, 2009 Koji Otani <sho@bbr.jp> @@ -7656,8 +7656,10 @@ GooString* PSOutputDev::filterPSLabel(GooString *label, GBool *needParens) { } else if (c == '(') { label2->append("\\("); } else if (c < 0x20 || c > 0x7e) { - label2->append(GooString::format("\\{0:03o}", c)); + GooString *aux = GooString::format("\\{0:03o}", c); + label2->append(aux); j += 4; + delete aux; } else { label2->append(c); ++j; diff --git a/Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo_p.h b/Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo_p.h index 6cd5220d372..34823cc6ba4 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo_p.h +++ b/Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo_p.h @@ -75,7 +75,7 @@ static void toRoman(int number, GooString *str, GBool uppercase) { const char *wh; if (number >= 4000) { - error(errUnimplemented, -1, "Conversion to roman numberals of numbers >= 4000 not implemented"); + error(errUnimplemented, -1, "Conversion to roman numerals of numbers >= 4000 not implemented"); return; } diff --git a/Build/source/libs/poppler/poppler-src/poppler/SignatureHandler.cc b/Build/source/libs/poppler/poppler-src/poppler/SignatureHandler.cc index 96de8f3266a..a5132a489d1 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/SignatureHandler.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/SignatureHandler.cc @@ -6,7 +6,7 @@ // // Copyright 2015, 2016 André Guerreiro <aguerreiro1985@gmail.com> // Copyright 2015 André Esser <bepandre@hotmail.com> -// Copyright 2015 Albert Astals Cid <aacid@kde.org> +// Copyright 2015, 2016 Albert Astals Cid <aacid@kde.org> // Copyright 2015 Markus Kilås <digital@markuspage.com> // //======================================================================== @@ -82,6 +82,7 @@ GooString *SignatureHandler::getDefaultFirefoxCertDB_Linux() } while (subFolder != NULL); closedir(toSearchIn); + delete homePath; return NULL; } diff --git a/Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc b/Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc index 13d090c601a..eeb6cc38b0e 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc @@ -15,7 +15,7 @@ // // Copyright (C) 2005 Takashi Iwai <tiwai@suse.de> // Copyright (C) 2006 Stefan Schweizer <genstef@gentoo.org> -// Copyright (C) 2006-2015 Albert Astals Cid <aacid@kde.org> +// Copyright (C) 2006-2016 Albert Astals Cid <aacid@kde.org> // Copyright (C) 2006 Krzysztof Kowalczyk <kkowalczyk@gmail.com> // Copyright (C) 2006 Scott Turner <scotty1024@mac.com> // Copyright (C) 2007 Koji Otani <sho@bbr.jp> @@ -36,6 +36,7 @@ // Copyright (C) 2014 Richard PALO <richard@netbsd.org> // Copyright (C) 2015 Tamas Szekeres <szekerest@gmail.com> // Copyright (C) 2015 Kenji Uno <ku@digitaldolphins.jp> +// Copyright (C) 2016 Takahiro Hashimoto <kenya888.en@gmail.com> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -94,6 +95,13 @@ extern "C" int unlink(char *filename); #endif #endif +#if __cplusplus > 199711L +#include <cmath> +#ifndef isfinite +#define isfinite(x) std::isfinite(x) +#endif +#endif + static inline void convertGfxColor(SplashColorPtr dest, SplashColorMode colorMode, GfxColorSpace *colorSpace, @@ -2052,6 +2060,7 @@ void SplashOutputDev::doUpdateFont(GfxState *state) { reload: delete id; delete fontLoc; + fontLoc = NULL; if (fontsrc && !fontsrc->isFile) fontsrc->unref(); diff --git a/Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc b/Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc index afd89597f2b..cf39bd88ab7 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc @@ -20,7 +20,7 @@ // Copyright (C) 2006 Jeff Muizelaar <jeff@infidigm.net> // Copyright (C) 2007, 2008, 2012 Adrian Johnson <ajohnson@redneon.com> // Copyright (C) 2008 Koji Otani <sho@bbr.jp> -// Copyright (C) 2008, 2010-2012, 2014, 2015 Albert Astals Cid <aacid@kde.org> +// Copyright (C) 2008, 2010-2012, 2014-2016 Albert Astals Cid <aacid@kde.org> // Copyright (C) 2008 Pino Toscano <pino@kde.org> // Copyright (C) 2008, 2010 Hib Eris <hib@hiberis.nl> // Copyright (C) 2009 Ross Moore <ross@maths.mq.edu.au> @@ -3763,12 +3763,12 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) { // build the flows //~ this needs to be adjusted for writing mode (vertical text) //~ this also needs to account for right-to-left column ordering - flow = NULL; while (flows) { flow = flows; flows = flows->next; delete flow; } + flow = NULL; flows = lastFlow = NULL; // assume blocks are already in reading order, // and construct flows accordingly. diff --git a/Build/source/libs/poppler/poppler-src/poppler/XRef.cc b/Build/source/libs/poppler/poppler-src/poppler/XRef.cc index 76ffc6ff95b..3d032bcb41f 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/XRef.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/XRef.cc @@ -973,7 +973,12 @@ GBool XRef::constructXRef(GBool *wasReconstructed, GBool needCatalogDict) { do { ++p; } while (*p && isdigit(*p & 0xff)); - if (isspace(*p & 0xff)) { + if ((*p & 0xff) == 0 || isspace(*p & 0xff)) { + if ((*p & 0xff) == 0) { + //new line, continue with next line! + str->getLine(buf, 256); + p = buf - 1; + } do { ++p; } while (*p && isspace(*p & 0xff)); @@ -982,7 +987,12 @@ GBool XRef::constructXRef(GBool *wasReconstructed, GBool needCatalogDict) { do { ++p; } while (*p && isdigit(*p & 0xff)); - if (isspace(*p & 0xff)) { + if ((*p & 0xff) == 0 || isspace(*p & 0xff)) { + if ((*p & 0xff) == 0) { + //new line, continue with next line! + str->getLine(buf, 256); + p = buf - 1; + } do { ++p; } while (*p && isspace(*p & 0xff)); @@ -1251,6 +1261,7 @@ Object *XRef::fetch(int num, int gen, Object *obj, int recursion) { err: if (!xRefStream && !xrefReconstructed) { + error(errInternal, -1, "xref num {0:d} not found but needed, try to reconstruct\n", num); rootNum = -1; constructXRef(&xrefReconstructed); return fetch(num, gen, obj, ++recursion); diff --git a/Build/source/libs/poppler/poppler-src/splash/Splash.cc b/Build/source/libs/poppler/poppler-src/splash/Splash.cc index 5bc7767a305..5acbe8eff9d 100644 --- a/Build/source/libs/poppler/poppler-src/splash/Splash.cc +++ b/Build/source/libs/poppler/poppler-src/splash/Splash.cc @@ -13,7 +13,7 @@ // // Copyright (C) 2005-2015 Albert Astals Cid <aacid@kde.org> // Copyright (C) 2005 Marco Pesenti Gritti <mpg@redhat.com> -// Copyright (C) 2010-2015 Thomas Freitag <Thomas.Freitag@alfa.de> +// Copyright (C) 2010-2016 Thomas Freitag <Thomas.Freitag@alfa.de> // Copyright (C) 2010 Christian Feuersänger <cfeuersaenger@googlemail.com> // Copyright (C) 2011-2013, 2015 William Bader <williambader@hotmail.com> // Copyright (C) 2012 Markus Trippelsdorf <markus@trippelsdorf.de> @@ -5914,7 +5914,7 @@ SplashPath *Splash::makeStrokePath(SplashPath *path, SplashCoord w, SplashPath *pathIn, *dashPath, *pathOut; SplashCoord d, dx, dy, wdx, wdy, dxNext, dyNext, wdxNext, wdyNext; SplashCoord crossprod, dotprod, miter, m; - GBool first, last, closed; + GBool first, last, closed, hasangle; int subpathStart0, subpathStart1, seg, i0, i1, j0, j1, k0, k1; int left0, left1, left2, right0, right1, right2, join0, join1, join2; int leftFirst, rightFirst, firstPt; @@ -6142,6 +6142,7 @@ SplashPath *pathIn, *dashPath, *pathOut; // compute the join parameters crossprod = dx * dyNext - dy * dxNext; dotprod = -(dx * dxNext + dy * dyNext); + hasangle = crossprod != 0 || dx * dxNext < 0 || dy * dyNext < 0; if (dotprod > 0.9999) { // avoid a divide-by-zero -- set miter to something arbitrary // such that sqrt(miter) will exceed miterLimit (and m is never @@ -6161,7 +6162,7 @@ SplashPath *pathIn, *dashPath, *pathOut; } // round join - if (state->lineJoin == splashLineJoinRound) { + if (hasangle && state->lineJoin == splashLineJoinRound) { pathOut->moveTo(pathIn->pts[j0].x + (SplashCoord)0.5 * w, pathIn->pts[j0].y); pathOut->curveTo(pathIn->pts[j0].x + (SplashCoord)0.5 * w, @@ -6189,7 +6190,7 @@ SplashPath *pathIn, *dashPath, *pathOut; pathIn->pts[j0].x + (SplashCoord)0.5 * w, pathIn->pts[j0].y); - } else { + } else if (hasangle) { pathOut->moveTo(pathIn->pts[j0].x, pathIn->pts[j0].y); // angle < 180 diff --git a/Build/source/libs/poppler/version.ac b/Build/source/libs/poppler/version.ac index 934ec8f7ec1..9ad21ab1cad 100644 --- a/Build/source/libs/poppler/version.ac +++ b/Build/source/libs/poppler/version.ac @@ -8,4 +8,4 @@ dnl dnl -------------------------------------------------------- dnl dnl m4-include this file to define the current poppler version -m4_define([poppler_version], [0.42.0]) +m4_define([poppler_version], [0.44.0]) |