download.lst                                   |    4 
 external/pdfium/Library_pdfium.mk              |    5 -
 external/pdfium/build.patch.1                  |  124 +------------------------
 external/pdfium/buildfix-7.patch.1             |   19 +++
 external/pdfium/inc/pch/precompiled_pdfium.hxx |    1 
 5 files changed, 29 insertions(+), 124 deletions(-)

New commits:
commit 81fc050a888874dc63a1aaf921dd5023f710c99a
Author:     Miklos Vajna <[email protected]>
AuthorDate: Wed Dec 11 11:11:05 2024 +0100
Commit:     Michael Stahl <[email protected]>
CommitDate: Thu Nov 13 13:17:12 2025 +0100

    Update pdfium to 6887
    
    CPWL_Dash-switch-to-universal-init.patch.1 is upstreamed, remove it.
    
    (cherry picked from commit 39f35f2ed2277931da36b6e3d2516c2355296fc9)
    
    Conflicts:
            external/pdfium/UnpackedTarball_pdfium.mk
    
    Change-Id: I4ff68f15d58b853896626b0458d3817f64fbc32f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182907
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Miklos Vajna <[email protected]>
    (cherry picked from commit 2e23914bc0f49565bcd2527ff7a6b1f1499e5fb1)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193768
    (cherry picked from commit 13c58e97976144b700cdbd4804b2a7f34a44ea2c)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193902
    Reviewed-by: Michael Stahl <[email protected]>
    Tested-by: allotropia jenkins <[email protected]>

diff --git a/download.lst b/download.lst
index fef4343099cd..4b780c5cbb87 100644
--- a/download.lst
+++ b/download.lst
@@ -455,8 +455,8 @@ PAGEMAKER_TARBALL := libpagemaker-0.0.4.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-PDFIUM_SHA256SUM := 
59d5df3b38312b069d96a8de9d4f8d7f44a29835c9dc82bd792ea02be86c4e49
-PDFIUM_TARBALL := pdfium-6764.tar.bz2
+PDFIUM_SHA256SUM := 
03aabafd8bed319f87aa96871264dc599879e482a0923450070dac987c8a671e
+PDFIUM_TARBALL := pdfium-6887.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/pdfium/CPWL_Dash-switch-to-universal-init.patch.1 
b/external/pdfium/CPWL_Dash-switch-to-universal-init.patch.1
deleted file mode 100644
index 9a82052c5013..000000000000
--- a/external/pdfium/CPWL_Dash-switch-to-universal-init.patch.1
+++ /dev/null
@@ -1,150 +0,0 @@
-From 4467963f67102181c41a1579e627a9748b954d74 Mon Sep 17 00:00:00 2001
-From: Miklos Vajna <[email protected]>
-Date: Fri, 18 Oct 2024 22:08:25 +0000
-Subject: [PATCH] CPWL_Dash: switch to universal init
-
-E.g. clang-15 in -std=c++20 mode fails without this with the following
-error message:
-
-pdfium/fpdfsdk/pwl/cpwl_wnd.cpp:43:7: error: no matching constructor for 
initialization of 'CPWL_Dash'
-      sDash(3, 0, 0) {}
-      ^     ~~~~~~~
-pdfium/fpdfsdk/pwl/cpwl_wnd.h:61:8: note: candidate constructor (the implicit 
copy constructor) not viable: requires 1 argument, but 3 were provided
-struct CPWL_Dash {
-       ^
-pdfium/fpdfsdk/pwl/cpwl_wnd.h:61:8: note: candidate constructor (the implicit 
move constructor) not viable: requires 1 argument, but 3 were provided
-pdfium/fpdfsdk/pwl/cpwl_wnd.h:61:8: note: candidate constructor (the implicit 
default constructor) not viable: requires 0 arguments, but 3 were provided
-1 error generated.
-
-Switching to universal init restores the ability to build with this
-compiler, as it was working in the past.
-
-Change-Id: I48b2079b87cce9bc4e2ec7b813e21ea5bcb786d3
-Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/125170
-Reviewed-by: Tom Sepez <[email protected]>
-Commit-Queue: Tom Sepez <[email protected]>
-Reviewed-by: Lei Zhang <[email protected]>
-Reviewed-by: Tom Sepez <[email protected]>
----
- fpdfsdk/cpdfsdk_appstream.cpp         | 20 ++++++++++----------
- fpdfsdk/formfiller/cffl_formfield.cpp |  2 +-
- fpdfsdk/pwl/cpwl_wnd.cpp              |  2 +-
- 3 files changed, 12 insertions(+), 12 deletions(-)
-
-diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp
-index 3a9bfabef..b7b06cae8 100644
---- a/fpdfsdk/cpdfsdk_appstream.cpp
-+++ b/fpdfsdk/cpdfsdk_appstream.cpp
-@@ -1055,7 +1055,7 @@ ByteString GetDropButtonAppStream(const CFX_FloatRect& 
rcBBox) {
-         rcBBox, 2, CFX_Color(CFX_Color::Type::kGray, 0),
-         CFX_Color(CFX_Color::Type::kGray, 1),
-         CFX_Color(CFX_Color::Type::kGray, 0.5), BorderStyle::kBeveled,
--        CPWL_Dash(3, 0, 0));
-+        CPWL_Dash{3, 0, 0});
-   }
- 
-   CFX_PointF ptCenter = CFX_PointF((rcBBox.left + rcBBox.right) / 2,
-@@ -1162,14 +1162,14 @@ void CPDFSDK_AppStream::SetAsPushButton() {
-   CFX_Color crBorder = pControl->GetOriginalBorderColor();
- 
-   float fBorderWidth = static_cast<float>(widget_->GetBorderWidth());
--  CPWL_Dash dsBorder(3, 0, 0);
-+  CPWL_Dash dsBorder{3, 0, 0};
-   CFX_Color crLeftTop;
-   CFX_Color crRightBottom;
- 
-   BorderStyle nBorderStyle = widget_->GetBorderStyle();
-   switch (nBorderStyle) {
-     case BorderStyle::kDash:
--      dsBorder = CPWL_Dash(3, 3, 0);
-+      dsBorder = CPWL_Dash{3, 3, 0};
-       break;
-     case BorderStyle::kBeveled:
-       fBorderWidth *= 2;
-@@ -1313,14 +1313,14 @@ void CPDFSDK_AppStream::SetAsCheckBox() {
-   CFX_Color crBackground = pControl->GetOriginalBackgroundColor();
-   CFX_Color crBorder = pControl->GetOriginalBorderColor();
-   float fBorderWidth = static_cast<float>(widget_->GetBorderWidth());
--  CPWL_Dash dsBorder(3, 0, 0);
-+  CPWL_Dash dsBorder{3, 0, 0};
-   CFX_Color crLeftTop;
-   CFX_Color crRightBottom;
- 
-   BorderStyle nBorderStyle = widget_->GetBorderStyle();
-   switch (nBorderStyle) {
-     case BorderStyle::kDash:
--      dsBorder = CPWL_Dash(3, 3, 0);
-+      dsBorder = CPWL_Dash{3, 3, 0};
-       break;
-     case BorderStyle::kBeveled:
-       fBorderWidth *= 2;
-@@ -1392,14 +1392,14 @@ void CPDFSDK_AppStream::SetAsRadioButton() {
-   CFX_Color crBackground = pControl->GetOriginalBackgroundColor();
-   CFX_Color crBorder = pControl->GetOriginalBorderColor();
-   float fBorderWidth = static_cast<float>(widget_->GetBorderWidth());
--  CPWL_Dash dsBorder(3, 0, 0);
-+  CPWL_Dash dsBorder{3, 0, 0};
-   CFX_Color crLeftTop;
-   CFX_Color crRightBottom;
- 
-   BorderStyle nBorderStyle = widget_->GetBorderStyle();
-   switch (nBorderStyle) {
-     case BorderStyle::kDash:
--      dsBorder = CPWL_Dash(3, 3, 0);
-+      dsBorder = CPWL_Dash{3, 3, 0};
-       break;
-     case BorderStyle::kBeveled:
-       fBorderWidth *= 2;
-@@ -1769,7 +1769,7 @@ void 
CPDFSDK_AppStream::SetAsTextField(std::optional<WideString> sValue) {
-         ByteString sColor =
-             GetStrokeColorAppStream(widget_->GetBorderPWLColor());
-         if (sColor.GetLength() > 0) {
--          CPWL_Dash dsBorder = CPWL_Dash(3, 3, 0);
-+          CPWL_Dash dsBorder = CPWL_Dash{3, 3, 0};
-           AutoClosedQCommand q(&sLines);
-           sLines << widget_->GetBorderWidth() << " " << kSetLineWidthOperator
-                  << "
"
-@@ -1876,12 +1876,12 @@ ByteString CPDFSDK_AppStream::GetBorderAppStream() 
const {
-   CFX_Color crRightBottom;
- 
-   float fBorderWidth = static_cast<float>(widget_->GetBorderWidth());
--  CPWL_Dash dsBorder(3, 0, 0);
-+  CPWL_Dash dsBorder{3, 0, 0};
- 
-   BorderStyle nBorderStyle = widget_->GetBorderStyle();
-   switch (nBorderStyle) {
-     case BorderStyle::kDash:
--      dsBorder = CPWL_Dash(3, 3, 0);
-+      dsBorder = CPWL_Dash{3, 3, 0};
-       break;
-     case BorderStyle::kBeveled:
-       fBorderWidth *= 2;
-diff --git a/fpdfsdk/formfiller/cffl_formfield.cpp 
b/fpdfsdk/formfiller/cffl_formfield.cpp
-index 49edfdaed..bba78eda6 100644
---- a/fpdfsdk/formfiller/cffl_formfield.cpp
-+++ b/fpdfsdk/formfiller/cffl_formfield.cpp
-@@ -336,7 +336,7 @@ CPWL_Wnd::CreateParams CFFL_FormField::GetCreateParam() {
-   cp.nBorderStyle = m_pWidget->GetBorderStyle();
-   switch (cp.nBorderStyle) {
-     case BorderStyle::kDash:
--      cp.sDash = CPWL_Dash(3, 3, 0);
-+      cp.sDash = CPWL_Dash{3, 3, 0};
-       break;
-     case BorderStyle::kBeveled:
-     case BorderStyle::kInset:
-diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp
-index 502568709..88b0cf03e 100644
---- a/fpdfsdk/pwl/cpwl_wnd.cpp
-+++ b/fpdfsdk/pwl/cpwl_wnd.cpp
-@@ -40,7 +40,7 @@ 
CPWL_Wnd::CreateParams::CreateParams(CFX_Timer::HandlerIface* timer_handler,
-       pFillerNotify(filler_notify),
-       pProvider(provider),
-       fFontSize(kDefaultFontSize),
--      sDash(3, 0, 0) {}
-+      sDash{3, 0, 0} {}
- 
- CPWL_Wnd::CreateParams::CreateParams(const CreateParams& other) = default;
- 
--- 
-2.43.0
-
diff --git a/external/pdfium/Library_pdfium.mk 
b/external/pdfium/Library_pdfium.mk
index 995a870cd879..190777085093 100644
--- a/external/pdfium/Library_pdfium.mk
+++ b/external/pdfium/Library_pdfium.mk
@@ -374,10 +374,13 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,pdfium,\
     UnpackedTarball/pdfium/core/fxcodec/flate/flatemodule \
     UnpackedTarball/pdfium/core/fxcodec/icc/icc_transform \
     UnpackedTarball/pdfium/core/fxcodec/jbig2/jbig2_decoder \
-    UnpackedTarball/pdfium/core/fxcodec/jpeg/jpeg_common \
     UnpackedTarball/pdfium/core/fxcodec/data_and_bytes_consumed \
 ))
 
+$(eval $(call gb_Library_add_generated_cobjects,pdfium,\
+    UnpackedTarball/pdfium/core/fxcodec/jpeg/jpeg_common \
+))
+
 # fxcrt
 $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
     UnpackedTarball/pdfium/core/fxcrt/cfx_memorystream \
diff --git a/external/pdfium/UnpackedTarball_pdfium.mk 
b/external/pdfium/UnpackedTarball_pdfium.mk
index b3ebcfde4d5d..e70ea82d0183 100644
--- a/external/pdfium/UnpackedTarball_pdfium.mk
+++ b/external/pdfium/UnpackedTarball_pdfium.mk
@@ -16,8 +16,6 @@ pdfium_patches += build.patch.1
 pdfium_patches += msvc2017.patch.1
 # Avoids Windows 8 build dependency.
 pdfium_patches += windows7.patch.1
-# https://pdfium-review.googlesource.com/c/pdfium/+/125170
-pdfium_patches += CPWL_Dash-switch-to-universal-init.patch.1
 pdfium_patches += c++20-comparison.patch
 
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,pdfium))
diff --git a/external/pdfium/build.patch.1 b/external/pdfium/build.patch.1
index c1c733aca306..99115f64ea9f 100644
--- a/external/pdfium/build.patch.1
+++ b/external/pdfium/build.patch.1
@@ -50,7 +50,9 @@ index 435fafa85..d8e8bfbc4 100644
              typename = internal::EnableIfSpanCompatibleContainer<Container, 
T>>
 -  constexpr span(Container& container)
 +  span(Container& container)
-       : span(container.data(), container.size()) {}
+       // SAFETY: `size()` is the number of elements that can be safely 
accessed
+       // at `data()`.
+       : UNSAFE_BUFFERS(span(container.data(), container.size())) {}
  #endif
  
 @@ -225,7 +225,7 @@ class TRIVIAL_ABI GSL_POINTER span {
@@ -59,9 +61,9 @@ index 435fafa85..d8e8bfbc4 100644
              typename = internal::EnableIfLegalSpanConversion<U, T>>
 -  constexpr span(const span<U, M, R>& other)
 +  span(const span<U, M, R>& other)
-       : span(other.data(), other.size()) {}
- 
-   span& operator=(const span& other) noexcept {
+       // SAFETY: `size()` is the number of elements that can be safely 
accessed
+       // at `data()`.
+       : UNSAFE_BUFFERS(span(other.data(), other.size())) {}
 diff --git a/core/fxcrt/numerics/safe_conversions_impl.h 
b/core/fxcrt/numerics/safe_conversions_impl.h
 index 44c921a14..0152a89b7 100644
 --- a/core/fxcrt/numerics/safe_conversions_impl.h
diff --git a/external/pdfium/buildfix-7.patch.1 
b/external/pdfium/buildfix-7.patch.1
index a5540617fd9e..adacf0f30df1 100644
--- a/external/pdfium/buildfix-7.patch.1
+++ b/external/pdfium/buildfix-7.patch.1
@@ -180,14 +180,14 @@ pdfium/core/fpdfdoc/cpdf_formcontrol.cpp:134: undefined 
reference to `fxcrt::Str
 +++ pdfium/core/fpdfdoc/cpdf_pagelabel.cpp     2025-11-12 11:26:09.615649063 
+0100
 @@ -20,9 +20,9 @@
  WideString MakeRoman(int num) {
-   constexpr auto kArabic = fxcrt::ToArray<const int>(
+   static constexpr auto kArabic = fxcrt::ToArray<const int>(
        {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1});
 -  const auto kRoman = fxcrt::ToArray<const WideStringView>(
 +  std::array<const WideStringView, 13> kRoman =
        {L"m", L"cm", L"d", L"cd", L"c", L"xc", L"l", L"xl", L"x", L"ix", L"v",
 -       L"iv", L"i"});
 +       L"iv", L"i"};
-   constexpr int kMaxNum = 1000000;
+   static constexpr int kMaxNum = 1000000;
  
    num %= kMaxNum;
 --- pdfium/core/fpdfdoc/cpvt_variabletext.cpp.orig     2025-11-12 
11:28:21.534664730 +0100
@@ -204,3 +204,18 @@ pdfium/core/fpdfdoc/cpdf_formcontrol.cpp:134: undefined 
reference to `fxcrt::Str
  
  }  // namespace
  
+--- pdfium/core/fpdfdoc/cpdf_generateap.cpp.orig       2025-11-12 
12:02:45.057324704 +0100
++++ pdfium/core/fpdfdoc/cpdf_generateap.cpp    2025-11-12 12:03:45.923858903 
+0100
+@@ -824,8 +824,10 @@
+     body_stream << "q
" << button;
+     WriteRect(body_stream, button_rect) << " re f
";
+     body_stream << "Q
";
+-    static const BorderStyleInfo kButtonBorderStyleInfo{
+-        .width = 2, .style = BorderStyle::kBeveled, .dash_pattern{3, 0, 0}};
++    BorderStyleInfo kButtonBorderStyleInfo;
++    kButtonBorderStyleInfo.width = 2;
++    kButtonBorderStyleInfo.style = BorderStyle::kBeveled;
++    kButtonBorderStyleInfo.dash_pattern = {3, 0, 0};
+     ByteString button_border =
+         GenerateBorderAP(button_rect, kButtonBorderStyleInfo,
+                          CFX_Color(CFX_Color::Type::kGray, 0));
diff --git a/external/pdfium/inc/pch/precompiled_pdfium.hxx 
b/external/pdfium/inc/pch/precompiled_pdfium.hxx
index b03d216545af..be581129aa12 100644
--- a/external/pdfium/inc/pch/precompiled_pdfium.hxx
+++ b/external/pdfium/inc/pch/precompiled_pdfium.hxx
@@ -51,7 +51,6 @@
 #include <ostream>
 #include <queue>
 #include <set>
-#include <setjmp.h>
 #include <sstream>
 #include <stack>
 #include <stddef.h>
commit 431b461e8fa9b4f4a8d6a4a34ffffa55cc58261e
Author:     Miklos Vajna <[email protected]>
AuthorDate: Tue Dec 10 15:23:17 2024 +0100
Commit:     Michael Stahl <[email protected]>
CommitDate: Thu Nov 13 13:17:06 2025 +0100

    pdfium: mark part of build.patch.1 as upstreamed
    
    So it'll be easier to drop it the next time pdfium is updated.
    
    (cherry picked from commit 904b956622b1581517c938ed8dacac70f7c6242c)
    
     Conflicts:
            external/pdfium/UnpackedTarball_pdfium.mk
    
    Change-Id: Iebeb892f62ee8002460142adf28f75666c92c2e4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182866
    Reviewed-by: Miklos Vajna <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    (cherry picked from commit 60dec074779488c7efe7461ea195b4468f6574d4)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193767
    (cherry picked from commit 3e97144aea7b6fd81ec56820eaac67edf7af5ab1)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193901
    Reviewed-by: Michael Stahl <[email protected]>
    Tested-by: Michael Stahl <[email protected]>

diff --git a/external/pdfium/CPWL_Dash-switch-to-universal-init.patch.1 
b/external/pdfium/CPWL_Dash-switch-to-universal-init.patch.1
new file mode 100644
index 000000000000..9a82052c5013
--- /dev/null
+++ b/external/pdfium/CPWL_Dash-switch-to-universal-init.patch.1
@@ -0,0 +1,150 @@
+From 4467963f67102181c41a1579e627a9748b954d74 Mon Sep 17 00:00:00 2001
+From: Miklos Vajna <[email protected]>
+Date: Fri, 18 Oct 2024 22:08:25 +0000
+Subject: [PATCH] CPWL_Dash: switch to universal init
+
+E.g. clang-15 in -std=c++20 mode fails without this with the following
+error message:
+
+pdfium/fpdfsdk/pwl/cpwl_wnd.cpp:43:7: error: no matching constructor for 
initialization of 'CPWL_Dash'
+      sDash(3, 0, 0) {}
+      ^     ~~~~~~~
+pdfium/fpdfsdk/pwl/cpwl_wnd.h:61:8: note: candidate constructor (the implicit 
copy constructor) not viable: requires 1 argument, but 3 were provided
+struct CPWL_Dash {
+       ^
+pdfium/fpdfsdk/pwl/cpwl_wnd.h:61:8: note: candidate constructor (the implicit 
move constructor) not viable: requires 1 argument, but 3 were provided
+pdfium/fpdfsdk/pwl/cpwl_wnd.h:61:8: note: candidate constructor (the implicit 
default constructor) not viable: requires 0 arguments, but 3 were provided
+1 error generated.
+
+Switching to universal init restores the ability to build with this
+compiler, as it was working in the past.
+
+Change-Id: I48b2079b87cce9bc4e2ec7b813e21ea5bcb786d3
+Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/125170
+Reviewed-by: Tom Sepez <[email protected]>
+Commit-Queue: Tom Sepez <[email protected]>
+Reviewed-by: Lei Zhang <[email protected]>
+Reviewed-by: Tom Sepez <[email protected]>
+---
+ fpdfsdk/cpdfsdk_appstream.cpp         | 20 ++++++++++----------
+ fpdfsdk/formfiller/cffl_formfield.cpp |  2 +-
+ fpdfsdk/pwl/cpwl_wnd.cpp              |  2 +-
+ 3 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp
+index 3a9bfabef..b7b06cae8 100644
+--- a/fpdfsdk/cpdfsdk_appstream.cpp
++++ b/fpdfsdk/cpdfsdk_appstream.cpp
+@@ -1055,7 +1055,7 @@ ByteString GetDropButtonAppStream(const CFX_FloatRect& 
rcBBox) {
+         rcBBox, 2, CFX_Color(CFX_Color::Type::kGray, 0),
+         CFX_Color(CFX_Color::Type::kGray, 1),
+         CFX_Color(CFX_Color::Type::kGray, 0.5), BorderStyle::kBeveled,
+-        CPWL_Dash(3, 0, 0));
++        CPWL_Dash{3, 0, 0});
+   }
+ 
+   CFX_PointF ptCenter = CFX_PointF((rcBBox.left + rcBBox.right) / 2,
+@@ -1162,14 +1162,14 @@ void CPDFSDK_AppStream::SetAsPushButton() {
+   CFX_Color crBorder = pControl->GetOriginalBorderColor();
+ 
+   float fBorderWidth = static_cast<float>(widget_->GetBorderWidth());
+-  CPWL_Dash dsBorder(3, 0, 0);
++  CPWL_Dash dsBorder{3, 0, 0};
+   CFX_Color crLeftTop;
+   CFX_Color crRightBottom;
+ 
+   BorderStyle nBorderStyle = widget_->GetBorderStyle();
+   switch (nBorderStyle) {
+     case BorderStyle::kDash:
+-      dsBorder = CPWL_Dash(3, 3, 0);
++      dsBorder = CPWL_Dash{3, 3, 0};
+       break;
+     case BorderStyle::kBeveled:
+       fBorderWidth *= 2;
+@@ -1313,14 +1313,14 @@ void CPDFSDK_AppStream::SetAsCheckBox() {
+   CFX_Color crBackground = pControl->GetOriginalBackgroundColor();
+   CFX_Color crBorder = pControl->GetOriginalBorderColor();
+   float fBorderWidth = static_cast<float>(widget_->GetBorderWidth());
+-  CPWL_Dash dsBorder(3, 0, 0);
++  CPWL_Dash dsBorder{3, 0, 0};
+   CFX_Color crLeftTop;
+   CFX_Color crRightBottom;
+ 
+   BorderStyle nBorderStyle = widget_->GetBorderStyle();
+   switch (nBorderStyle) {
+     case BorderStyle::kDash:
+-      dsBorder = CPWL_Dash(3, 3, 0);
++      dsBorder = CPWL_Dash{3, 3, 0};
+       break;
+     case BorderStyle::kBeveled:
+       fBorderWidth *= 2;
+@@ -1392,14 +1392,14 @@ void CPDFSDK_AppStream::SetAsRadioButton() {
+   CFX_Color crBackground = pControl->GetOriginalBackgroundColor();
+   CFX_Color crBorder = pControl->GetOriginalBorderColor();
+   float fBorderWidth = static_cast<float>(widget_->GetBorderWidth());
+-  CPWL_Dash dsBorder(3, 0, 0);
++  CPWL_Dash dsBorder{3, 0, 0};
+   CFX_Color crLeftTop;
+   CFX_Color crRightBottom;
+ 
+   BorderStyle nBorderStyle = widget_->GetBorderStyle();
+   switch (nBorderStyle) {
+     case BorderStyle::kDash:
+-      dsBorder = CPWL_Dash(3, 3, 0);
++      dsBorder = CPWL_Dash{3, 3, 0};
+       break;
+     case BorderStyle::kBeveled:
+       fBorderWidth *= 2;
+@@ -1769,7 +1769,7 @@ void 
CPDFSDK_AppStream::SetAsTextField(std::optional<WideString> sValue) {
+         ByteString sColor =
+             GetStrokeColorAppStream(widget_->GetBorderPWLColor());
+         if (sColor.GetLength() > 0) {
+-          CPWL_Dash dsBorder = CPWL_Dash(3, 3, 0);
++          CPWL_Dash dsBorder = CPWL_Dash{3, 3, 0};
+           AutoClosedQCommand q(&sLines);
+           sLines << widget_->GetBorderWidth() << " " << kSetLineWidthOperator
+                  << "
"
+@@ -1876,12 +1876,12 @@ ByteString CPDFSDK_AppStream::GetBorderAppStream() 
const {
+   CFX_Color crRightBottom;
+ 
+   float fBorderWidth = static_cast<float>(widget_->GetBorderWidth());
+-  CPWL_Dash dsBorder(3, 0, 0);
++  CPWL_Dash dsBorder{3, 0, 0};
+ 
+   BorderStyle nBorderStyle = widget_->GetBorderStyle();
+   switch (nBorderStyle) {
+     case BorderStyle::kDash:
+-      dsBorder = CPWL_Dash(3, 3, 0);
++      dsBorder = CPWL_Dash{3, 3, 0};
+       break;
+     case BorderStyle::kBeveled:
+       fBorderWidth *= 2;
+diff --git a/fpdfsdk/formfiller/cffl_formfield.cpp 
b/fpdfsdk/formfiller/cffl_formfield.cpp
+index 49edfdaed..bba78eda6 100644
+--- a/fpdfsdk/formfiller/cffl_formfield.cpp
++++ b/fpdfsdk/formfiller/cffl_formfield.cpp
+@@ -336,7 +336,7 @@ CPWL_Wnd::CreateParams CFFL_FormField::GetCreateParam() {
+   cp.nBorderStyle = m_pWidget->GetBorderStyle();
+   switch (cp.nBorderStyle) {
+     case BorderStyle::kDash:
+-      cp.sDash = CPWL_Dash(3, 3, 0);
++      cp.sDash = CPWL_Dash{3, 3, 0};
+       break;
+     case BorderStyle::kBeveled:
+     case BorderStyle::kInset:
+diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp
+index 502568709..88b0cf03e 100644
+--- a/fpdfsdk/pwl/cpwl_wnd.cpp
++++ b/fpdfsdk/pwl/cpwl_wnd.cpp
+@@ -40,7 +40,7 @@ 
CPWL_Wnd::CreateParams::CreateParams(CFX_Timer::HandlerIface* timer_handler,
+       pFillerNotify(filler_notify),
+       pProvider(provider),
+       fFontSize(kDefaultFontSize),
+-      sDash(3, 0, 0) {}
++      sDash{3, 0, 0} {}
+ 
+ CPWL_Wnd::CreateParams::CreateParams(const CreateParams& other) = default;
+ 
+-- 
+2.43.0
+
diff --git a/external/pdfium/UnpackedTarball_pdfium.mk 
b/external/pdfium/UnpackedTarball_pdfium.mk
index e70ea82d0183..b3ebcfde4d5d 100644
--- a/external/pdfium/UnpackedTarball_pdfium.mk
+++ b/external/pdfium/UnpackedTarball_pdfium.mk
@@ -16,6 +16,8 @@ pdfium_patches += build.patch.1
 pdfium_patches += msvc2017.patch.1
 # Avoids Windows 8 build dependency.
 pdfium_patches += windows7.patch.1
+# https://pdfium-review.googlesource.com/c/pdfium/+/125170
+pdfium_patches += CPWL_Dash-switch-to-universal-init.patch.1
 pdfium_patches += c++20-comparison.patch
 
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,pdfium))
diff --git a/external/pdfium/build.patch.1 b/external/pdfium/build.patch.1
index 21b18e8334a2..c1c733aca306 100644
--- a/external/pdfium/build.patch.1
+++ b/external/pdfium/build.patch.1
@@ -145,117 +145,3 @@ index 8026a75d5..34c20d62f 100644
    static_assert(kModeKeyForMode.size() == FPDF_ANNOT_APPEARANCEMODE_COUNT,
                  "length of kModeKeyForMode should be equal to "
                  "FPDF_ANNOT_APPEARANCEMODE_COUNT");
-diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp
-index 3a9bfabef..b7b06cae8 100644
---- a/fpdfsdk/cpdfsdk_appstream.cpp
-+++ b/fpdfsdk/cpdfsdk_appstream.cpp
-@@ -1055,7 +1055,7 @@ ByteString GetDropButtonAppStream(const CFX_FloatRect& 
rcBBox) {
-         rcBBox, 2, CFX_Color(CFX_Color::Type::kGray, 0),
-         CFX_Color(CFX_Color::Type::kGray, 1),
-         CFX_Color(CFX_Color::Type::kGray, 0.5), BorderStyle::kBeveled,
--        CPWL_Dash(3, 0, 0));
-+        CPWL_Dash{3, 0, 0});
-   }
- 
-   CFX_PointF ptCenter = CFX_PointF((rcBBox.left + rcBBox.right) / 2,
-@@ -1162,14 +1162,14 @@ void CPDFSDK_AppStream::SetAsPushButton() {
-   CFX_Color crBorder = pControl->GetOriginalBorderColor();
- 
-   float fBorderWidth = static_cast<float>(widget_->GetBorderWidth());
--  CPWL_Dash dsBorder(3, 0, 0);
-+  CPWL_Dash dsBorder{3, 0, 0};
-   CFX_Color crLeftTop;
-   CFX_Color crRightBottom;
- 
-   BorderStyle nBorderStyle = widget_->GetBorderStyle();
-   switch (nBorderStyle) {
-     case BorderStyle::kDash:
--      dsBorder = CPWL_Dash(3, 3, 0);
-+      dsBorder = CPWL_Dash{3, 3, 0};
-       break;
-     case BorderStyle::kBeveled:
-       fBorderWidth *= 2;
-@@ -1313,14 +1313,14 @@ void CPDFSDK_AppStream::SetAsCheckBox() {
-   CFX_Color crBackground = pControl->GetOriginalBackgroundColor();
-   CFX_Color crBorder = pControl->GetOriginalBorderColor();
-   float fBorderWidth = static_cast<float>(widget_->GetBorderWidth());
--  CPWL_Dash dsBorder(3, 0, 0);
-+  CPWL_Dash dsBorder{3, 0, 0};
-   CFX_Color crLeftTop;
-   CFX_Color crRightBottom;
- 
-   BorderStyle nBorderStyle = widget_->GetBorderStyle();
-   switch (nBorderStyle) {
-     case BorderStyle::kDash:
--      dsBorder = CPWL_Dash(3, 3, 0);
-+      dsBorder = CPWL_Dash{3, 3, 0};
-       break;
-     case BorderStyle::kBeveled:
-       fBorderWidth *= 2;
-@@ -1392,14 +1392,14 @@ void CPDFSDK_AppStream::SetAsRadioButton() {
-   CFX_Color crBackground = pControl->GetOriginalBackgroundColor();
-   CFX_Color crBorder = pControl->GetOriginalBorderColor();
-   float fBorderWidth = static_cast<float>(widget_->GetBorderWidth());
--  CPWL_Dash dsBorder(3, 0, 0);
-+  CPWL_Dash dsBorder{3, 0, 0};
-   CFX_Color crLeftTop;
-   CFX_Color crRightBottom;
- 
-   BorderStyle nBorderStyle = widget_->GetBorderStyle();
-   switch (nBorderStyle) {
-     case BorderStyle::kDash:
--      dsBorder = CPWL_Dash(3, 3, 0);
-+      dsBorder = CPWL_Dash{3, 3, 0};
-       break;
-     case BorderStyle::kBeveled:
-       fBorderWidth *= 2;
-@@ -1769,7 +1769,7 @@ void 
CPDFSDK_AppStream::SetAsTextField(std::optional<WideString> sValue) {
-         ByteString sColor =
-             GetStrokeColorAppStream(widget_->GetBorderPWLColor());
-         if (sColor.GetLength() > 0) {
--          CPWL_Dash dsBorder = CPWL_Dash(3, 3, 0);
-+          CPWL_Dash dsBorder = CPWL_Dash{3, 3, 0};
-           AutoClosedQCommand q(&sLines);
-           sLines << widget_->GetBorderWidth() << " " << kSetLineWidthOperator
-                  << "
"
-@@ -1876,12 +1876,12 @@ ByteString CPDFSDK_AppStream::GetBorderAppStream() 
const {
-   CFX_Color crRightBottom;
- 
-   float fBorderWidth = static_cast<float>(widget_->GetBorderWidth());
--  CPWL_Dash dsBorder(3, 0, 0);
-+  CPWL_Dash dsBorder{3, 0, 0};
- 
-   BorderStyle nBorderStyle = widget_->GetBorderStyle();
-   switch (nBorderStyle) {
-     case BorderStyle::kDash:
--      dsBorder = CPWL_Dash(3, 3, 0);
-+      dsBorder = CPWL_Dash{3, 3, 0};
-       break;
-     case BorderStyle::kBeveled:
-       fBorderWidth *= 2;
-diff --git a/fpdfsdk/formfiller/cffl_formfield.cpp 
b/fpdfsdk/formfiller/cffl_formfield.cpp
-index 49edfdaed..bba78eda6 100644
---- a/fpdfsdk/formfiller/cffl_formfield.cpp
-+++ b/fpdfsdk/formfiller/cffl_formfield.cpp
-@@ -336,7 +336,7 @@ CPWL_Wnd::CreateParams CFFL_FormField::GetCreateParam() {
-   cp.nBorderStyle = m_pWidget->GetBorderStyle();
-   switch (cp.nBorderStyle) {
-     case BorderStyle::kDash:
--      cp.sDash = CPWL_Dash(3, 3, 0);
-+      cp.sDash = CPWL_Dash{3, 3, 0};
-       break;
-     case BorderStyle::kBeveled:
-     case BorderStyle::kInset:
-diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp
-index 502568709..88b0cf03e 100644
---- a/fpdfsdk/pwl/cpwl_wnd.cpp
-+++ b/fpdfsdk/pwl/cpwl_wnd.cpp
-@@ -40,7 +40,7 @@ 
CPWL_Wnd::CreateParams::CreateParams(CFX_Timer::HandlerIface* timer_handler,
-       pFillerNotify(filler_notify),
-       pProvider(provider),
-       fFontSize(kDefaultFontSize),
--      sDash(3, 0, 0) {}
-+      sDash{3, 0, 0} {}
- 
- CPWL_Wnd::CreateParams::CreateParams(const CreateParams& other) = default;
- 

Reply via email to