download.lst                                   |    4 -
 external/pdfium/Library_pdfium.mk              |    7 ++
 external/pdfium/README                         |    1 
 external/pdfium/UnpackedTarball_pdfium.mk      |    3 -
 external/pdfium/build.patch.1                  |   71 +------------------------
 external/pdfium/inc/pch/precompiled_pdfium.hxx |    3 -
 vcl/source/pdf/PDFiumLibrary.cxx               |    3 -
 7 files changed, 19 insertions(+), 73 deletions(-)

New commits:
commit d4f0281f3127255b792a9ec492ba4a14d5ee64c2
Author:     Miklos Vajna <vmik...@collabora.com>
AuthorDate: Thu Nov 11 20:26:18 2021 +0100
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Fri Nov 12 08:11:31 2021 +0100

    external: update pdfium to 4699
    
    Change-Id: I545adce0491e48fad2bfc4003695bd96cc911f22
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125068
    Tested-by: Jenkins
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>

diff --git a/download.lst b/download.lst
index b00208e6344e..ac1d72e090d2 100644
--- a/download.lst
+++ b/download.lst
@@ -208,8 +208,8 @@ export ORCUS_SHA256SUM := 
2ef9d2b5ee374c683cf631b78356b110510ab895788a68d778e225
 export ORCUS_TARBALL := liborcus-0.17.0.tar.bz2
 export PAGEMAKER_SHA256SUM := 
66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d
 export PAGEMAKER_TARBALL := libpagemaker-0.0.4.tar.xz
-export PDFIUM_SHA256SUM := 
eb98a77eaaab9e9e8de541cfd18b9438dd3c538bd5ef163820353179727f5dc9
-export PDFIUM_TARBALL := pdfium-4643.tar.bz2
+export PDFIUM_SHA256SUM := 
ee80fe0a3b20ef5c5babc494cd655d1b1a0bdec710acb04524789df500c563bf
+export PDFIUM_TARBALL := pdfium-4699.tar.bz2
 export PIXMAN_SHA256SUM := 
6d200dec3740d9ec4ec8d1180e25779c00bc749f94278c8b9021f5534db223fc
 export PIXMAN_TARBALL := pixman-0.40.0.tar.gz
 export LIBPNG_SHA256SUM := 
505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca
diff --git a/external/pdfium/Library_pdfium.mk 
b/external/pdfium/Library_pdfium.mk
index 8b55628fd30f..ee2917fbfd5d 100644
--- a/external/pdfium/Library_pdfium.mk
+++ b/external/pdfium/Library_pdfium.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_Library_set_include,pdfium,\
     -I$(call gb_UnpackedTarball_get_dir,pdfium) \
     -I$(call gb_UnpackedTarball_get_dir,pdfium)/third_party \
     -I$(call gb_UnpackedTarball_get_dir,pdfium)/third_party/agg23 \
+    -I$(call gb_UnpackedTarball_get_dir,pdfium)/third_party/abseil-cpp \
     $$(INCLUDE) \
 ))
 
@@ -72,6 +73,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,pdfium,\
     UnpackedTarball/pdfium/fpdfsdk/fpdf_save \
     UnpackedTarball/pdfium/fpdfsdk/fpdf_text \
     UnpackedTarball/pdfium/fpdfsdk/fpdf_view \
+    UnpackedTarball/pdfium/fpdfsdk/ipdfsdk_annothandler \
     UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_pauseadapter \
     UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_interactiveform \
     UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_renderpage \
@@ -516,6 +518,11 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,pdfium,\
     UnpackedTarball/pdfium/third_party/agg23/agg_vcgen_stroke \
 ))
 
+# third_party/abseil-cpp
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+    
UnpackedTarball/pdfium/third_party/abseil-cpp/absl/types/bad_optional_access \
+))
+
 # third_party/fx_libopenjpeg
 $(eval $(call gb_Library_add_generated_cobjects,pdfium,\
     UnpackedTarball/pdfium/third_party/libopenjpeg20/bio \
diff --git a/external/pdfium/README b/external/pdfium/README
index 0a146d2e74de..fdcc91a0a45c 100644
--- a/external/pdfium/README
+++ b/external/pdfium/README
@@ -12,4 +12,5 @@ git checkout --track origin/chromium/$version
 gclient sync
 git archive --prefix=pdfium/ --format=tar origin/chromium/${version} > 
pdfium-${version}.tar
 (cd ..; tar --append --file pdfium/pdfium-${version}.tar 
pdfium/third_party/freetype/src/include/ pdfium/third_party/freetype/src/src/)
+(cd ..; tar --append --file pdfium/pdfium-${version}.tar 
pdfium/third_party/abseil-cpp/absl/)
 bzip2 pdfium-${version}.tar
diff --git a/external/pdfium/UnpackedTarball_pdfium.mk 
b/external/pdfium/UnpackedTarball_pdfium.mk
index 4e7d5c1ad6b4..3a19feed8ea2 100644
--- a/external/pdfium/UnpackedTarball_pdfium.mk
+++ b/external/pdfium/UnpackedTarball_pdfium.mk
@@ -56,7 +56,8 @@ $(eval $(call gb_UnpackedTarball_set_post_action,pdfium,\
     mv third_party/base/allocator/partition_allocator/random.cc 
third_party/base/allocator/partition_allocator/random.cpp && \
     mv third_party/base/memory/aligned_memory.cc 
third_party/base/memory/aligned_memory.cpp && \
     mv third_party/base/win/win_util.cc third_party/base/win/win_util.cpp && \
-    mv third_party/libopenjpeg20/opj_malloc.cc 
third_party/libopenjpeg20/opj_malloc.cpp \
+    mv third_party/libopenjpeg20/opj_malloc.cc 
third_party/libopenjpeg20/opj_malloc.cpp && \
+    mv third_party/abseil-cpp/absl/types/bad_optional_access.cc 
third_party/abseil-cpp/absl/types/bad_optional_access.cpp \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/pdfium/build.patch.1 b/external/pdfium/build.patch.1
index fce8874af8bd..ec29803246ed 100644
--- a/external/pdfium/build.patch.1
+++ b/external/pdfium/build.patch.1
@@ -38,80 +38,15 @@ index 0fb627ba8..dda1fc8bc 100644
    template <
        typename Container,
 diff --git a/core/fxcodec/jpx/cjpx_decoder.cpp 
b/core/fxcodec/jpx/cjpx_decoder.cpp
-index c66985a7f..817f81dfa 100644
+index d8875786c..bc019ebe1 100644
 --- a/core/fxcodec/jpx/cjpx_decoder.cpp
 +++ b/core/fxcodec/jpx/cjpx_decoder.cpp
-@@ -71,7 +71,7 @@ Optional<OpjImageRgbData> alloc_rgb(size_t size) {
+@@ -73,7 +73,7 @@ absl::optional<OpjImageRgbData> alloc_rgb(size_t size) {
    if (!data.b)
-     return pdfium::nullopt;
+     return absl::nullopt;
  
 -  return data;
 +  return std::move(data);
  }
  
  void sycc_to_rgb(int offset,
-diff --git a/core/fdrm/fx_crypt_aes.cpp b/core/fdrm/fx_crypt_aes.cpp
-index f2170220b..ede18f581 100644
---- a/core/fdrm/fx_crypt_aes.cpp
-+++ b/core/fdrm/fx_crypt_aes.cpp
-@@ -437,7 +437,7 @@ const unsigned int D3[256] = {
-   (block[0] ^= *keysched++, block[1] ^= *keysched++, block[2] ^= *keysched++, 
\
-    block[3] ^= *keysched++)
- #define MOVEWORD(i) (block[i] = newstate[i])
--#define MAKEWORD(i)                                         \
-+#define FMAKEWORD(i)                                         \
-   (newstate[i] = (E0[(block[i] >> 24) & 0xFF] ^             \
-                   E1[(block[(i + C1) % Nb] >> 16) & 0xFF] ^ \
-                   E2[(block[(i + C2) % Nb] >> 8) & 0xFF] ^  \
-@@ -458,10 +458,10 @@ void aes_encrypt_nb_4(CRYPT_aes_context* ctx, unsigned 
int* block) {
-   unsigned int newstate[4];
-   for (i = 0; i < ctx->Nr - 1; i++) {
-     ADD_ROUND_KEY_4();
--    MAKEWORD(0);
--    MAKEWORD(1);
--    MAKEWORD(2);
--    MAKEWORD(3);
-+    FMAKEWORD(0);
-+    FMAKEWORD(1);
-+    FMAKEWORD(2);
-+    FMAKEWORD(3);
-     MOVEWORD(0);
-     MOVEWORD(1);
-     MOVEWORD(2);
-@@ -478,10 +478,10 @@ void aes_encrypt_nb_4(CRYPT_aes_context* ctx, unsigned 
int* block) {
-   MOVEWORD(3);
-   ADD_ROUND_KEY_4();
- }
--#undef MAKEWORD
-+#undef FMAKEWORD
- #undef LASTWORD
- 
--#define MAKEWORD(i)                                         \
-+#define FMAKEWORD(i)                                         \
-   (newstate[i] = (D0[(block[i] >> 24) & 0xFF] ^             \
-                   D1[(block[(i + C1) % Nb] >> 16) & 0xFF] ^ \
-                   D2[(block[(i + C2) % Nb] >> 8) & 0xFF] ^  \
-@@ -502,10 +502,10 @@ void aes_decrypt_nb_4(CRYPT_aes_context* ctx, unsigned 
int* block) {
-   unsigned int newstate[4];
-   for (i = 0; i < ctx->Nr - 1; i++) {
-     ADD_ROUND_KEY_4();
--    MAKEWORD(0);
--    MAKEWORD(1);
--    MAKEWORD(2);
--    MAKEWORD(3);
-+    FMAKEWORD(0);
-+    FMAKEWORD(1);
-+    FMAKEWORD(2);
-+    FMAKEWORD(3);
-     MOVEWORD(0);
-     MOVEWORD(1);
-     MOVEWORD(2);
-@@ -522,7 +522,7 @@ void aes_decrypt_nb_4(CRYPT_aes_context* ctx, unsigned 
int* block) {
-   MOVEWORD(3);
-   ADD_ROUND_KEY_4();
- }
--#undef MAKEWORD
-+#undef FMAKEWORD
- #undef LASTWORD
- 
- void aes_setup(CRYPT_aes_context* ctx, const unsigned char* key, int keylen) {
diff --git a/external/pdfium/inc/pch/precompiled_pdfium.hxx 
b/external/pdfium/inc/pch/precompiled_pdfium.hxx
index 83e1ff915b2f..1296e6634653 100644
--- a/external/pdfium/inc/pch/precompiled_pdfium.hxx
+++ b/external/pdfium/inc/pch/precompiled_pdfium.hxx
@@ -66,6 +66,7 @@
 #if PCH_LEVEL >= 2
 #endif // PCH_LEVEL >= 2
 #if PCH_LEVEL >= 3
+#include <absl/types/bad_optional_access.h>
 #include <build/build_config.h>
 #include <constants/access_permissions.h>
 #include <constants/annotation_common.h>
@@ -450,6 +451,7 @@
 #include <public/fpdf_text.h>
 #include <public/fpdf_transformpage.h>
 #include <public/fpdfview.h>
+#include <third_party/abseil-cpp/absl/types/optional.h>
 #include <third_party/agg23/agg_clip_liang_barsky.h>
 #include <third_party/agg23/agg_conv_dash.h>
 #include <third_party/agg23/agg_conv_stroke.h>
@@ -487,7 +489,6 @@
 #include <third_party/base/notreached.h>
 #include <third_party/base/numerics/safe_conversions.h>
 #include <third_party/base/numerics/safe_math.h>
-#include <third_party/base/optional.h>
 #include <third_party/base/ptr_util.h>
 #include <third_party/base/span.h>
 #include <third_party/skia_shared/SkFloatToDecimal.h>
diff --git a/vcl/source/pdf/PDFiumLibrary.cxx b/vcl/source/pdf/PDFiumLibrary.cxx
index 3766330b9481..e6abb40ccb89 100644
--- a/vcl/source/pdf/PDFiumLibrary.cxx
+++ b/vcl/source/pdf/PDFiumLibrary.cxx
@@ -816,7 +816,8 @@ OUString PDFiumPageObjectImpl::getFontName()
     OUString sFontName;
     const int nFontName = 80 + 1;
     std::unique_ptr<char[]> pFontName(new char[nFontName]); // + terminating 
null
-    int nFontNameChars = FPDFTextObj_GetFontName(mpPageObject, 
pFontName.get(), nFontName);
+    FPDF_FONT pFontObject = FPDFTextObj_GetFont(mpPageObject);
+    int nFontNameChars = FPDFFont_GetFontName(pFontObject, pFontName.get(), 
nFontName);
     if (nFontName >= nFontNameChars)
     {
         sFontName = OUString::createFromAscii(pFontName.get());

Reply via email to