summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--download.lst4
-rw-r--r--external/pdfium/Library_pdfium.mk62
-rw-r--r--external/pdfium/UnpackedTarball_pdfium.mk2
-rw-r--r--external/pdfium/build.patch.1103
-rw-r--r--external/pdfium/freetype.patch.118
-rw-r--r--external/pdfium/icu.patch.113
-rw-r--r--external/pdfium/ubsan.patch19
7 files changed, 69 insertions, 152 deletions
diff --git a/download.lst b/download.lst
index 3481884e0398..ff3761f43a0d 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 := 80331b48166501a192d65476932f17044eeb5f10faa6ea50f4f175169475c957
-export PDFIUM_TARBALL := pdfium-3426.tar.bz2
+export PDFIUM_SHA256SUM := 0cd451fb1b301dc1df55f91e644092e505032dcddbdeaf3e2744039377d1bfd0
+export PDFIUM_TARBALL := pdfium-3358.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 0019535857a6..f42f19927637 100644
--- a/external/pdfium/Library_pdfium.mk
+++ b/external/pdfium/Library_pdfium.mk
@@ -40,6 +40,7 @@ $(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 \
@@ -60,27 +61,22 @@ $(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/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 \
+ 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 \
))
# fdrm
@@ -360,6 +356,7 @@ $(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 \
@@ -370,13 +367,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/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/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/css/cfx_csscolorvalue \
UnpackedTarball/pdfium/core/fxcrt/css/cfx_csscomputedstyle \
UnpackedTarball/pdfium/core/fxcrt/css/cfx_csscustomproperty \
@@ -409,7 +406,6 @@ $(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
@@ -443,7 +439,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/renderdevicedriver_iface \
+ UnpackedTarball/pdfium/core/fxge/ifx_renderdevicedriver \
UnpackedTarball/pdfium/core/fxge/agg/fx_agg_driver \
UnpackedTarball/pdfium/core/fxge/cfx_cliprgn \
UnpackedTarball/pdfium/core/fxge/cfx_color \
@@ -470,7 +466,6 @@ $(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
@@ -551,8 +546,6 @@ $(eval $(call gb_Library_use_externals,pdfium,\
libjpeg \
lcms2 \
zlib \
- icu_headers \
- icuuc \
))
ifneq (,$(filter LINUX ANDROID,$(OS)))
@@ -586,8 +579,10 @@ $(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 \
@@ -608,6 +603,7 @@ $(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 2ac8404e3164..333d06bb8e35 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 += icu.patch.1
+pdfium_patches += freetype.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 89d8e5e7d8d0..b852383ff84b 100644
--- a/external/pdfium/build.patch.1
+++ b/external/pdfium/build.patch.1
@@ -19,106 +19,3 @@ 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<T>& rhs) {
- return rhs > lhs;
- }
-
--extern template class StringViewTemplate<char>;
--extern template class StringViewTemplate<wchar_t>;
--
- using ByteStringView = StringViewTemplate<char>;
- using WideStringView = StringViewTemplate<wchar_t>;
-
-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<UnsupportedFeature> CPDF_Metadata::CheckForSharedForm() const {
- CFX_XMLParser parser(stream);
- std::unique_ptr<CFX_XMLDocument> doc = parser.Parse();
- if (!doc)
-- return {};
-+ return std::vector<UnsupportedFeature>();
-
- std::vector<UnsupportedFeature> 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<T> to be
- // seamlessly used as a span<const T>, but not the other way around.
- template <typename U, typename = internal::EnableIfLegalSpanConversion<U, T>>
-- constexpr span(const span<U>& other) : span(other.data(), other.size()) {}
-+ span(const span<U>& 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<int>(*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
new file mode 100644
index 000000000000..90f230c54e69
--- /dev/null
+++ b/external/pdfium/freetype.patch.1
@@ -0,0 +1,18 @@
+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
deleted file mode 100644
index 85e837d9b99f..000000000000
--- a/external/pdfium/icu.patch.1
+++ /dev/null
@@ -1,13 +0,0 @@
-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 <unicode/uchar.h>
-
- #define FX_INVALID_OFFSET static_cast<uint32_t>(-1)
-
diff --git a/external/pdfium/ubsan.patch b/external/pdfium/ubsan.patch
index 91428326fc5d..af39e3d95db3 100644
--- a/external/pdfium/ubsan.patch
+++ b/external/pdfium/ubsan.patch
@@ -22,3 +22,22 @@
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);
+ }