From 56195a4d0bbb21edeed1cea7a45283141c733f18 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Mon, 14 May 2018 08:55:58 +0200 Subject: pdfium: update to 3426 Allows dropping the ugly freetype.patch.1. Change-Id: Ifa8a6dac02a49a2c13572e59773261a847efad3f Reviewed-on: https://gerrit.libreoffice.org/54294 Reviewed-by: Miklos Vajna Tested-by: Jenkins --- download.lst | 4 +- external/pdfium/Library_pdfium.mk | 62 +++++++++--------- external/pdfium/UnpackedTarball_pdfium.mk | 2 +- external/pdfium/build.patch.1 | 103 ++++++++++++++++++++++++++++++ external/pdfium/freetype.patch.1 | 18 ------ external/pdfium/icu.patch.1 | 13 ++++ external/pdfium/ubsan.patch | 19 ------ 7 files changed, 152 insertions(+), 69 deletions(-) delete mode 100644 external/pdfium/freetype.patch.1 create mode 100644 external/pdfium/icu.patch.1 diff --git a/download.lst b/download.lst index 3e4bbe2b72ff..71204e880c85 100644 --- a/download.lst +++ b/download.lst @@ -200,8 +200,8 @@ export OWNCLOUD_ANDROID_LIB_SHA256SUM := b18b3e3ef7fae6a79b62f2bb43cc47a5346b633 export OWNCLOUD_ANDROID_LIB_TARBALL := owncloud-android-library-0.9.4-no-binary-deps.tar.gz export PAGEMAKER_SHA256SUM := 66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d export PAGEMAKER_TARBALL := libpagemaker-0.0.4.tar.xz -export PDFIUM_SHA256SUM := 0cd451fb1b301dc1df55f91e644092e505032dcddbdeaf3e2744039377d1bfd0 -export PDFIUM_TARBALL := pdfium-3358.tar.bz2 +export PDFIUM_SHA256SUM := 80331b48166501a192d65476932f17044eeb5f10faa6ea50f4f175169475c957 +export PDFIUM_TARBALL := pdfium-3426.tar.bz2 export PIXMAN_SHA256SUM := 21b6b249b51c6800dc9553b65106e1e37d0e25df942c90531d4c3997aa20a88e export PIXMAN_TARBALL := e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz export LIBPNG_SHA256SUM := 2f1e960d92ce3b3abd03d06dfec9637dfbd22febf107a536b44f7a47c60659f6 diff --git a/external/pdfium/Library_pdfium.mk b/external/pdfium/Library_pdfium.mk index 46f1edeb6f42..5f845154203d 100644 --- a/external/pdfium/Library_pdfium.mk +++ b/external/pdfium/Library_pdfium.mk @@ -40,7 +40,6 @@ $(eval $(call gb_Library_set_generated_cxx_suffix,pdfium,cpp)) # pdfium $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\ - UnpackedTarball/pdfium/fpdfsdk/cba_annotiterator \ UnpackedTarball/pdfium/fpdfsdk/cfx_systemhandler \ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_annot \ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_annothandlermgr \ @@ -61,22 +60,27 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\ UnpackedTarball/pdfium/fpdfsdk/fpdf_structtree \ UnpackedTarball/pdfium/fpdfsdk/fpdf_sysfontinfo \ UnpackedTarball/pdfium/fpdfsdk/fpdf_transformpage \ - UnpackedTarball/pdfium/fpdfsdk/fpdfdoc \ - UnpackedTarball/pdfium/fpdfsdk/fpdfeditimg \ - UnpackedTarball/pdfium/fpdfsdk/fpdfeditpage \ - UnpackedTarball/pdfium/fpdfsdk/fpdfeditpath \ - UnpackedTarball/pdfium/fpdfsdk/fpdfedittext \ - UnpackedTarball/pdfium/fpdfsdk/fpdfformfill \ - UnpackedTarball/pdfium/fpdfsdk/fpdfsave \ - UnpackedTarball/pdfium/fpdfsdk/fpdftext \ - UnpackedTarball/pdfium/fpdfsdk/fpdfview \ - UnpackedTarball/pdfium/fpdfsdk/fsdk_actionhandler \ - UnpackedTarball/pdfium/fpdfsdk/fsdk_pauseadapter \ - UnpackedTarball/pdfium/fpdfsdk/pdfsdk_fieldaction \ - UnpackedTarball/pdfium/fpdfsdk/fsdk_filewriteadapter \ - UnpackedTarball/pdfium/fpdfsdk/fpdfannot \ - UnpackedTarball/pdfium/fpdfsdk/fpdfattachment \ - UnpackedTarball/pdfium/fpdfsdk/fpdfcatalog \ + UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_actionhandler \ + UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_annotiterator \ + UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_customaccess \ + UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_fieldaction \ + UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_filewriteadapter \ + UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_helpers \ + UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_memoryaccess \ + UnpackedTarball/pdfium/fpdfsdk/fpdf_annot \ + UnpackedTarball/pdfium/fpdfsdk/fpdf_attachment \ + UnpackedTarball/pdfium/fpdfsdk/fpdf_catalog \ + UnpackedTarball/pdfium/fpdfsdk/fpdf_doc \ + UnpackedTarball/pdfium/fpdfsdk/fpdf_editimg \ + UnpackedTarball/pdfium/fpdfsdk/fpdf_editpage \ + UnpackedTarball/pdfium/fpdfsdk/fpdf_editpath \ + UnpackedTarball/pdfium/fpdfsdk/fpdf_edittext \ + UnpackedTarball/pdfium/fpdfsdk/fpdf_formfill \ + UnpackedTarball/pdfium/fpdfsdk/fpdf_save \ + UnpackedTarball/pdfium/fpdfsdk/fpdf_text \ + UnpackedTarball/pdfium/fpdfsdk/fpdf_view \ + UnpackedTarball/pdfium/fpdfsdk/ipdfsdk_pauseadapter \ + UnpackedTarball/pdfium/fpdfsdk/cpdf_annotcontext \ )) # fdrm @@ -356,7 +360,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\ # fxcrt $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\ - UnpackedTarball/pdfium/core/fxcrt/cfx_blockbuffer \ UnpackedTarball/pdfium/core/fxcrt/cfx_memorystream \ UnpackedTarball/pdfium/core/fxcrt/cfx_seekablestreamproxy \ UnpackedTarball/pdfium/core/fxcrt/fx_bidi \ @@ -367,13 +370,13 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\ UnpackedTarball/pdfium/core/fxcrt/fx_system \ UnpackedTarball/pdfium/core/fxcrt/fx_ucddata \ UnpackedTarball/pdfium/core/fxcrt/fx_unicode \ - UnpackedTarball/pdfium/core/fxcrt/xml/cxml_attritem \ - UnpackedTarball/pdfium/core/fxcrt/xml/cxml_databufacc \ - UnpackedTarball/pdfium/core/fxcrt/xml/cxml_element \ - UnpackedTarball/pdfium/core/fxcrt/xml/cxml_parser \ - UnpackedTarball/pdfium/core/fxcrt/xml/cxml_content \ - UnpackedTarball/pdfium/core/fxcrt/xml/cxml_object \ - UnpackedTarball/pdfium/core/fxcrt/xml/cfx_saxcontext \ + UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmldocument \ + UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmlelement \ + UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmlparser \ + UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmlnode \ + UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmlinstruction \ + UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmltext \ + UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmlchardata \ UnpackedTarball/pdfium/core/fxcrt/css/cfx_csscolorvalue \ UnpackedTarball/pdfium/core/fxcrt/css/cfx_csscomputedstyle \ UnpackedTarball/pdfium/core/fxcrt/css/cfx_csscustomproperty \ @@ -406,6 +409,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\ UnpackedTarball/pdfium/core/fxcrt/widestring \ UnpackedTarball/pdfium/core/fxcrt/cfx_seekablemultistream \ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssdata \ + UnpackedTarball/pdfium/core/fxcrt/fx_codepage \ )) # fxge @@ -439,7 +443,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSerifMM \ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSymbol \ UnpackedTarball/pdfium/core/fxge/freetype/fx_freetype \ - UnpackedTarball/pdfium/core/fxge/ifx_renderdevicedriver \ + UnpackedTarball/pdfium/core/fxge/renderdevicedriver_iface \ UnpackedTarball/pdfium/core/fxge/agg/fx_agg_driver \ UnpackedTarball/pdfium/core/fxge/cfx_cliprgn \ UnpackedTarball/pdfium/core/fxge/cfx_color \ @@ -466,6 +470,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\ UnpackedTarball/pdfium/fxjs/cjs_event_context_stub \ UnpackedTarball/pdfium/fxjs/cjs_runtimestub \ + UnpackedTarball/pdfium/fxjs/ijs_runtime \ )) # pwl @@ -546,6 +551,8 @@ $(eval $(call gb_Library_use_externals,pdfium,\ libjpeg \ lcms2 \ zlib \ + icu_headers \ + icuuc \ )) ifeq ($(OS),LINUX) @@ -579,10 +586,8 @@ $(eval $(call gb_Library_add_generated_cobjects,pdfium,\ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftbitmap \ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftglyph \ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftinit \ - UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftlcdfil \ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftmm \ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftsystem \ - UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftfntfmt \ UnpackedTarball/pdfium/third_party/freetype/src/src/cff/cff \ UnpackedTarball/pdfium/third_party/freetype/src/src/cid/type1cid \ UnpackedTarball/pdfium/third_party/freetype/src/src/psaux/psaux \ @@ -603,7 +608,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\ UnpackedTarball/pdfium/core/fxge/win32/cpsoutput \ UnpackedTarball/pdfium/core/fxge/win32/fx_win32_device \ UnpackedTarball/pdfium/core/fxge/win32/fx_win32_dib \ - UnpackedTarball/pdfium/core/fxge/win32/fx_win32_dwrite \ UnpackedTarball/pdfium/core/fxge/win32/fx_win32_gdipext \ UnpackedTarball/pdfium/core/fxge/win32/fx_win32_print \ )) diff --git a/external/pdfium/UnpackedTarball_pdfium.mk b/external/pdfium/UnpackedTarball_pdfium.mk index 333d06bb8e35..2ac8404e3164 100644 --- a/external/pdfium/UnpackedTarball_pdfium.mk +++ b/external/pdfium/UnpackedTarball_pdfium.mk @@ -10,7 +10,7 @@ pdfium_patches := pdfium_patches += visibility.patch.1 pdfium_patches += ubsan.patch -pdfium_patches += freetype.patch.1 +pdfium_patches += icu.patch.1 # Fixes build on our baseline. pdfium_patches += build.patch.1 diff --git a/external/pdfium/build.patch.1 b/external/pdfium/build.patch.1 index b852383ff84b..89d8e5e7d8d0 100644 --- a/external/pdfium/build.patch.1 +++ b/external/pdfium/build.patch.1 @@ -19,3 +19,106 @@ index 8e01127b0..f4ce4d915 100644 if (m_Storer.GetBitmap()->IsAlphaMask()) { CalcAlpha(cdata); } else { +diff --git a/core/fxcrt/string_view_template.h b/core/fxcrt/string_view_template.h +index 05694cf24..101253814 100644 +--- a/core/fxcrt/string_view_template.h ++++ b/core/fxcrt/string_view_template.h +@@ -231,9 +231,6 @@ inline bool operator<(const T* lhs, const StringViewTemplate& rhs) { + return rhs > lhs; + } + +-extern template class StringViewTemplate; +-extern template class StringViewTemplate; +- + using ByteStringView = StringViewTemplate; + using WideStringView = StringViewTemplate; + +diff --git a/core/fpdfdoc/cpdf_metadata.cpp b/core/fpdfdoc/cpdf_metadata.cpp +index 323de4ffc..f11a0b0ad 100644 +--- a/core/fpdfdoc/cpdf_metadata.cpp ++++ b/core/fpdfdoc/cpdf_metadata.cpp +@@ -74,7 +74,7 @@ std::vector CPDF_Metadata::CheckForSharedForm() const { + CFX_XMLParser parser(stream); + std::unique_ptr doc = parser.Parse(); + if (!doc) +- return {}; ++ return std::vector(); + + std::vector unsupported; + CheckForSharedFormInternal(doc->GetRoot(), &unsupported); +diff --git a/fpdfsdk/cpdf_annotcontext.cpp b/fpdfsdk/cpdf_annotcontext.cpp +index 20c5fc343..a40cd1eae 100644 +--- a/fpdfsdk/cpdf_annotcontext.cpp ++++ b/fpdfsdk/cpdf_annotcontext.cpp +@@ -16,12 +16,12 @@ CPDF_AnnotContext::CPDF_AnnotContext(CPDF_Dictionary* pAnnotDict, + CPDF_Page* pPage, + CPDF_Stream* pStream) + : m_pAnnotDict(pAnnotDict), m_pPage(pPage) { +- SetForm(pStream); ++ SetForm_(pStream); + } + + CPDF_AnnotContext::~CPDF_AnnotContext() = default; + +-void CPDF_AnnotContext::SetForm(CPDF_Stream* pStream) { ++void CPDF_AnnotContext::SetForm_(CPDF_Stream* pStream) { + if (!pStream) + return; + +diff --git a/fpdfsdk/cpdf_annotcontext.h b/fpdfsdk/cpdf_annotcontext.h +index 38cc91e03..7904ae044 100644 +--- a/fpdfsdk/cpdf_annotcontext.h ++++ b/fpdfsdk/cpdf_annotcontext.h +@@ -23,7 +23,7 @@ class CPDF_AnnotContext { + CPDF_Stream* pStream); + ~CPDF_AnnotContext(); + +- void SetForm(CPDF_Stream* pStream); ++ void SetForm_(CPDF_Stream* pStream); + bool HasForm() const { return !!m_pAnnotForm; } + CPDF_Form* GetForm() const { return m_pAnnotForm.get(); } + CPDF_Dictionary* GetAnnotDict() const { return m_pAnnotDict.Get(); } +diff --git a/third_party/base/span.h b/third_party/base/span.h +index 0fb627ba8..f71c362e2 100644 +--- a/third_party/base/span.h ++++ b/third_party/base/span.h +@@ -214,7 +214,7 @@ class span { + // Conversions from spans of compatible types: this allows a span to be + // seamlessly used as a span, but not the other way around. + template > +- constexpr span(const span& other) : span(other.data(), other.size()) {} ++ span(const span& other) : span(other.data(), other.size()) {} + span& operator=(const span& other) noexcept = default; + ~span() noexcept { + if (!size_) { +diff --git a/fpdfsdk/fpdf_annot.cpp b/fpdfsdk/fpdf_annot.cpp +index d3bf38d31..e8aea9707 100644 +--- a/fpdfsdk/fpdf_annot.cpp ++++ b/fpdfsdk/fpdf_annot.cpp +@@ -389,7 +389,7 @@ FPDFAnnot_AppendObject(FPDF_ANNOTATION annot, FPDF_PAGEOBJECT obj) { + + // Get the annotation's corresponding form object for parsing its AP stream. + if (!pAnnot->HasForm()) +- pAnnot->SetForm(pStream); ++ pAnnot->SetForm_(pStream); + + // Check that the object did not come from the same annotation. If this check + // succeeds, then it is assumed that the object came from +@@ -425,7 +425,7 @@ FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetObjectCount(FPDF_ANNOTATION annot) { + if (!pStream) + return 0; + +- pAnnot->SetForm(pStream); ++ pAnnot->SetForm_(pStream); + } + return pdfium::CollectionSize(*pAnnot->GetForm()->GetPageObjectList()); + } +@@ -442,7 +442,7 @@ FPDFAnnot_GetObject(FPDF_ANNOTATION annot, int index) { + if (!pStream) + return nullptr; + +- pAnnot->SetForm(pStream); ++ pAnnot->SetForm_(pStream); + } + + return FPDFPageObjectFromCPDFPageObject( diff --git a/external/pdfium/freetype.patch.1 b/external/pdfium/freetype.patch.1 deleted file mode 100644 index 90f230c54e69..000000000000 --- a/external/pdfium/freetype.patch.1 +++ /dev/null @@ -1,18 +0,0 @@ -Upstream provides this define from the commandline, but while this define is -needed for fxge, it breaks the build for the bundled freetype. gbuild doesn't -support having different defines within the same Library, so just patch the -single translation unit that actually needs the define. - -Long-term perhaps the solution is to enable freetype on all platforms inside -LO, then we don't have to build freetype as part of pdfium, so we can let -gbuild define this from the commandline. - -diff --git a/core/fxge/freetype/fx_freetype.cpp b/core/fxge/freetype/fx_freetype.cpp -index 0ae207b02..879bf5ab9 100644 ---- a/core/fxge/freetype/fx_freetype.cpp -+++ b/core/fxge/freetype/fx_freetype.cpp -@@ -1,3 +1,4 @@ -+#define DEFINE_PS_TABLES - // Copyright 2014 PDFium Authors. All rights reserved. - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. diff --git a/external/pdfium/icu.patch.1 b/external/pdfium/icu.patch.1 new file mode 100644 index 000000000000..85e837d9b99f --- /dev/null +++ b/external/pdfium/icu.patch.1 @@ -0,0 +1,13 @@ +diff --git a/core/fxcrt/fx_extension.h b/core/fxcrt/fx_extension.h +index ff96de0f7..0195bd06f 100644 +--- a/core/fxcrt/fx_extension.h ++++ b/core/fxcrt/fx_extension.h +@@ -13,7 +13,7 @@ + + #include "core/fxcrt/fx_string.h" + #include "third_party/base/span.h" +-#include "third_party/icu/source/common/unicode/uchar.h" ++#include + + #define FX_INVALID_OFFSET static_cast(-1) + diff --git a/external/pdfium/ubsan.patch b/external/pdfium/ubsan.patch index af39e3d95db3..91428326fc5d 100644 --- a/external/pdfium/ubsan.patch +++ b/external/pdfium/ubsan.patch @@ -22,22 +22,3 @@ int rowbytes = std::min(abs(src_pitch), dest_pitch); for (int row = 0; row < bmheight; row++) memcpy(pDestBuf + row * dest_pitch, pSrcBuf + row * src_pitch, rowbytes); ---- third_party/agg23/agg_rasterizer_scanline_aa.h -+++ third_party/agg23/agg_rasterizer_scanline_aa.h -@@ -349,14 +349,14 @@ public: - cover += cur_cell->cover; - } - if(area) { -- alpha = calculate_alpha((cover << (poly_base_shift + 1)) - area, no_smooth); -+ alpha = calculate_alpha(int(unsigned(cover) << (poly_base_shift + 1)) - area, no_smooth); - if(alpha) { - sl.add_cell(x, alpha); - } - x++; - } - if(num_cells && cur_cell->x > x) { -- alpha = calculate_alpha(cover << (poly_base_shift + 1), no_smooth); -+ alpha = calculate_alpha(unsigned(cover) << (poly_base_shift + 1), no_smooth); - if(alpha) { - sl.add_span(x, cur_cell->x - x, alpha); - } -- cgit v1.2.3