external/skia/UnpackedTarball_skia.mk  |    1 
 external/skia/help-msvc-analyzer.patch |   42 +++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)

New commits:
commit 247b3e3260da7f50402eaafc3fe14ff0f54542f1
Author:     Xisco Fauli <[email protected]>
AuthorDate: Fri Feb 20 17:37:48 2026 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Fri Feb 20 22:14:35 2026 +0100

    Revert "skia: drop unneeded patch"
    
    This reverts commit 3324e909e8c5251b30a21bd781da1d6229478a16.
    
    Reason for revert: still needed
    https://ci.libreoffice.org/job/lo_tb_master_win_analyze/ fails with
    
E:\jenkins\workspace\lo_tb_master_win_analyze\workdir\UnpackedTarball\skia\include/core/SkString.h(34):
 error C2220: the following warning is treated as an error
    
E:\jenkins\workspace\lo_tb_master_win_analyze\workdir\UnpackedTarball\skia\include
    [build CXX] vcl/win/gdi/winlayout.cxx
    
    Change-Id: I1b6d7e2920df6e267b1e215c820b848f3997d3a6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199896
    Reviewed-by: Xisco Fauli <[email protected]>
    Tested-by: Jenkins

diff --git a/external/skia/UnpackedTarball_skia.mk 
b/external/skia/UnpackedTarball_skia.mk
index 29134a7d0386..6dbeaf9cbfee 100644
--- a/external/skia/UnpackedTarball_skia.mk
+++ b/external/skia/UnpackedTarball_skia.mk
@@ -35,6 +35,7 @@ skia_patches := \
     0001-Added-missing-include-cstdio.patch \
     fix-SkDebugf-link-error.patch.1 \
     ubsan-missing-typeinfo.patch.1 \
+    help-msvc-analyzer.patch \
     windows-define-conflict.patch.1 \
        0002-loong64-Honor-existing-LASX-LSX-settings.patch \
        0003-loong64-Fix-missing-rounding-in-loong64-scaled_mult-.patch \
diff --git a/external/skia/help-msvc-analyzer.patch 
b/external/skia/help-msvc-analyzer.patch
new file mode 100644
index 000000000000..a1a3878c81ff
--- /dev/null
+++ b/external/skia/help-msvc-analyzer.patch
@@ -0,0 +1,42 @@
+diff -ur skia.org/include/private/base/SkAssert.h 
skia/include/private/base/SkAssert.h
+--- skia.org/include/private/base/SkAssert.h   2024-10-07 14:41:12.295957640 
+0200
++++ skia/include/private/base/SkAssert.h       2024-10-07 14:44:36.271140309 
+0200
+@@ -60,6 +60,13 @@
+     } while (false)
+ #endif
+ 
++// when building with msvc and only when using these headers outside the skia 
build
++#if defined(_MSC_VER) && !SKIA_IMPLEMENTATION
++#    define SkANALYSIS_ASSUME(condition) __analysis_assume(condition)
++#else
++#    define SkANALYSIS_ASSUME(condition) static_cast<void>(0)
++#endif
++
+ // SkASSERT, SkASSERTF and SkASSERT_RELEASE can be used as standalone 
assertion expressions, e.g.
+ //    uint32_t foo(int x) {
+ //        SkASSERT(x > 4);
+@@ -74,20 +81,20 @@
+ #define SkASSERT_RELEASE(cond) \
+     static_cast<void>( __builtin_expect(static_cast<bool>(cond), 1) \
+         ? static_cast<void>(0) \
+-        : []{ SK_ABORT("check(%s)", #cond); }() )
++        : [&]{ SK_ABORT("check(%s)", #cond); SkANALYSIS_ASSUME(cond); }() )
+
+ #define SkASSERTF_RELEASE(cond, fmt, ...)                                  \
+     static_cast<void>( __builtin_expect(static_cast<bool>(cond), 1)        \
+         ? static_cast<void>(0)                                             \
+-        : [&]{ SK_ABORT("assertf(%s): " fmt, #cond, ##__VA_ARGS__); }() )
++        : [&]{ SK_ABORT("assertf(%s): " fmt, #cond, ##__VA_ARGS__); 
SkANALYSIS_ASSUME(cond); }() )
+ #else
+ #define SkASSERT_RELEASE(cond) \
+-    static_cast<void>( (cond) ? static_cast<void>(0) : []{ 
SK_ABORT("check(%s)", #cond); }() )
++    static_cast<void>( (cond) ? static_cast<void>(0) : [&]{ 
SK_ABORT("check(%s)", #cond); SkANALYSIS_ASSUME(cond); }() )
+
+ #define SkASSERTF_RELEASE(cond, fmt, ...)                                   \
+     static_cast<void>( (cond)                                               \
+         ? static_cast<void>(0)                                              \
+-        : [&]{ SK_ABORT("assertf(%s): " fmt, #cond, ##__VA_ARGS__); }() )
++        : [&]{ SK_ABORT("assertf(%s): " fmt, #cond, ##__VA_ARGS__); 
SkANALYSIS_ASSUME(cond); }() )
+ #endif
+
+ #if defined(SK_DEBUG)

Reply via email to