[Libreoffice-commits] core.git: external/skia

Stephan Bergmann (via logerrit) logerrit at kemper.freedesktop.org
Wed Nov 27 13:15:02 UTC 2019


 external/skia/UnpackedTarball_skia.mk  |    3 ++-
 external/skia/c++20-comparison.patch.0 |   19 +++++++++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)

New commits:
commit 59ef53fb95b19a22dd1d761a277809f3aff3fb2c
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Wed Nov 27 12:48:08 2019 +0100
Commit:     Michael Stahl <michael.stahl at cib.de>
CommitDate: Wed Nov 27 14:13:11 2019 +0100

    external/skia: C++20 comparison operator fix
    
    Missing const leads to overload resolution ambiguity when a synthesized
    candidate of operator == for a reversed-argument rewrite conflicts with the
    actual operator ==, due to the asymmetric const-ness of the implicit object
    parameter and the RHS parameter:
    
    > In file included from workdir/UnpackedTarball/skia/src/shaders/SkLightingShader.cpp:15:
    > In file included from workdir/UnpackedTarball/skia/src/core/SkReadBuffer.h:13:
    > In file included from workdir/UnpackedTarball/skia/include/core/SkFont.h:13:
    > In file included from workdir/UnpackedTarball/skia/include/core/SkTypeface.h:16:
    > In file included from workdir/UnpackedTarball/skia/include/core/SkString.h:15:
    > workdir/UnpackedTarball/skia/include/private/SkTArray.h:389:35: error: use of overloaded operator '!=' is ambiguous (with operand types 'SkLights::Light' and 'SkLights::Light')
    >             if (fItemArray[index] != right.fItemArray[index]) {
    >                 ~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~
    > workdir/UnpackedTarball/skia/src/shaders/SkLightingShader.cpp:268:35: note: in instantiation of member function 'SkTArray<SkLights::Light, false>::operator==' requested here
    >         return fDirectionalLights == lightingFP.fDirectionalLights &&
    >                                   ^
    > workdir/UnpackedTarball/skia/src/shaders/SkLights.h:90:14: note: candidate function
    >         bool operator!=(const Light& other) { return !(this->operator==(other)); }
    >              ^
    > workdir/UnpackedTarball/skia/src/shaders/SkLights.h:83:14: note: candidate function
    >         bool operator==(const Light& other) {
    >              ^
    > workdir/UnpackedTarball/skia/src/shaders/SkLights.h:83:14: note: candidate function (with reversed parameter order)
    
    Change-Id: I61b28e191b36f84df6920b4143809d1f497b9113
    Reviewed-on: https://gerrit.libreoffice.org/83900
    Reviewed-by: Michael Stahl <michael.stahl at cib.de>
    Tested-by: Michael Stahl <michael.stahl at cib.de>

diff --git a/external/skia/UnpackedTarball_skia.mk b/external/skia/UnpackedTarball_skia.mk
index 1d2da19c2b5b..22a1a0d40720 100644
--- a/external/skia/UnpackedTarball_skia.mk
+++ b/external/skia/UnpackedTarball_skia.mk
@@ -21,7 +21,8 @@ skia_patches := \
     no-trace-resources-on-exit.patch.1 \
     fix-alpha-difference-copy.patch.1 \
     libvulkan-name.patch.1 \
-    share-grcontext.patch.1
+    share-grcontext.patch.1 \
+    c++20-comparison.patch.0 \
 
 $(eval $(call gb_UnpackedTarball_set_patchlevel,skia,1))
 
diff --git a/external/skia/c++20-comparison.patch.0 b/external/skia/c++20-comparison.patch.0
new file mode 100644
index 000000000000..86f0d7ff16e0
--- /dev/null
+++ b/external/skia/c++20-comparison.patch.0
@@ -0,0 +1,19 @@
+--- src/shaders/SkLights.h
++++ src/shaders/SkLights.h
+@@ -80,14 +80,14 @@
+             return *this;
+         }
+ 
+-        bool operator==(const Light& other) {
++        bool operator==(const Light& other) const {
+             return (fType      == other.fType) &&
+                    (fColor     == other.fColor) &&
+                    (fDirOrPos  == other.fDirOrPos) &&
+                    (fIntensity == other.fIntensity);
+         }
+ 
+-        bool operator!=(const Light& other) { return !(this->operator==(other)); }
++        bool operator!=(const Light& other) const { return !(this->operator==(other)); }
+ 
+     private:
+         friend class SkLights;


More information about the Libreoffice-commits mailing list