Title: [229525] trunk/Source/WebCore
Revision
229525
Author
mcatanz...@igalia.com
Date
2018-03-12 02:14:19 -0700 (Mon, 12 Mar 2018)

Log Message

[GTK] Crash in WebCore::PlatformDisplayWayland::~PlatformDisplayWayland
https://bugs.webkit.org/show_bug.cgi?id=176490

Reviewed by Žan Doberšek.

Destroy the wl_display with wl_display_disconnect() (client process API), not
wl_display_destroy() (server process API). It has to be destroyed last, so explicitly
destroy the wl_registry and wl_compositor first.

* platform/graphics/wayland/PlatformDisplayWayland.cpp:
(WebCore::PlatformDisplayWayland::~PlatformDisplayWayland):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (229524 => 229525)


--- trunk/Source/WebCore/ChangeLog	2018-03-12 09:12:12 UTC (rev 229524)
+++ trunk/Source/WebCore/ChangeLog	2018-03-12 09:14:19 UTC (rev 229525)
@@ -1,3 +1,17 @@
+2018-03-12  Michael Catanzaro  <mcatanz...@igalia.com>
+
+        [GTK] Crash in WebCore::PlatformDisplayWayland::~PlatformDisplayWayland
+        https://bugs.webkit.org/show_bug.cgi?id=176490
+
+        Reviewed by Žan Doberšek.
+
+        Destroy the wl_display with wl_display_disconnect() (client process API), not
+        wl_display_destroy() (server process API). It has to be destroyed last, so explicitly
+        destroy the wl_registry and wl_compositor first.
+
+        * platform/graphics/wayland/PlatformDisplayWayland.cpp:
+        (WebCore::PlatformDisplayWayland::~PlatformDisplayWayland):
+
 2018-03-10  Megan Gardner  <megan_gard...@apple.com>
 
         Media query for default appearance

Modified: trunk/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp (229524 => 229525)


--- trunk/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp	2018-03-12 09:12:12 UTC (rev 229524)
+++ trunk/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp	2018-03-12 09:14:19 UTC (rev 229525)
@@ -67,8 +67,11 @@
 
 PlatformDisplayWayland::~PlatformDisplayWayland()
 {
-    if (m_nativeDisplayOwned == NativeDisplayOwned::Yes)
-        wl_display_destroy(m_display);
+    if (m_nativeDisplayOwned == NativeDisplayOwned::Yes) {
+        m_compositor = nullptr;
+        m_registry = nullptr;
+        wl_display_disconnect(m_display);
+    }
 }
 
 void PlatformDisplayWayland::initialize(wl_display* display)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to