Title: [221356] releases/WebKitGTK/webkit-2.18/Source/WebCore
Revision
221356
Author
carlo...@webkit.org
Date
2017-08-30 02:20:33 -0700 (Wed, 30 Aug 2017)

Log Message

Merge r221183 - [GTK] Completely garbled display in Transifex in accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=174632

Reviewed by Michael Catanzaro.

Remove the copy constructor from PlatformContextCairo::State. This is because it will be used by WTF::Vector
to copy the instances around when allocating new memory, but it doesn't copy the m_imageMaskInformation
attribute, so it will be lost when the Vector reallocates its contents. When this happens, renderings that use
GraphicsContext::clipToImageBuffer() fail to render properly.

Covered by existent tests.

* platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::PlatformContextCairo::State::State):
(WebCore::PlatformContextCairo::save):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog (221355 => 221356)


--- releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog	2017-08-30 09:17:46 UTC (rev 221355)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog	2017-08-30 09:20:33 UTC (rev 221356)
@@ -1,3 +1,21 @@
+2017-08-25  Miguel Gomez  <mago...@igalia.com>
+
+        [GTK] Completely garbled display in Transifex in accelerated compositing mode
+        https://bugs.webkit.org/show_bug.cgi?id=174632
+
+        Reviewed by Michael Catanzaro.
+
+        Remove the copy constructor from PlatformContextCairo::State. This is because it will be used by WTF::Vector
+        to copy the instances around when allocating new memory, but it doesn't copy the m_imageMaskInformation
+        attribute, so it will be lost when the Vector reallocates its contents. When this happens, renderings that use
+        GraphicsContext::clipToImageBuffer() fail to render properly.
+
+        Covered by existent tests.
+
+        * platform/graphics/cairo/PlatformContextCairo.cpp:
+        (WebCore::PlatformContextCairo::State::State):
+        (WebCore::PlatformContextCairo::save):
+
 2017-08-24  Alex Christensen  <achristen...@webkit.org>
 
         Stop using PolicyCallback for new window policies

Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp (221355 => 221356)


--- releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp	2017-08-30 09:17:46 UTC (rev 221355)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp	2017-08-30 09:20:33 UTC (rev 221356)
@@ -68,9 +68,9 @@
     {
     }
 
-    State(const State& state)
-        : m_globalAlpha(state.m_globalAlpha)
-        , m_imageInterpolationQuality(state.m_imageInterpolationQuality)
+    State(float globalAlpha, InterpolationQuality imageInterpolationQuality)
+        : m_globalAlpha(globalAlpha)
+        , m_imageInterpolationQuality(imageInterpolationQuality)
     {
         // We do not copy m_imageMaskInformation because otherwise it would be applied
         // more than once during subsequent calls to restore().
@@ -110,7 +110,7 @@
 
 void PlatformContextCairo::save()
 {
-    m_stateStack.append(State(*m_state));
+    m_stateStack.append(State(m_state->m_globalAlpha, m_state->m_imageInterpolationQuality));
     m_state = &m_stateStack.last();
 
     cairo_save(m_cr.get());
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to