Ticket #47430: patch-webkit-gtk-gmutexlocker.diff

File patch-webkit-gtk-gmutexlocker.diff, 8.9 KB (added by dbevans (David B. Evans), 9 years ago)

Tentative fix for GMutexLocker issue

  • Portfile

     
    7777        gstreamer.patch \
    7878        leopard-platform.patch \
    7979        leopard-malloc.patch \
    80         libedit.patch
     80        libedit.patch \
     81        glib-2.44-GMutexLocker.patch
    8182
    8283conflicts_build     google-test
    8384
  • files/glib-2.44-GMutexLocker.patch

     
     1diff -ur Source/WebCore/platform/graphics/gstreamer.orig/VideoSinkGStreamer.cpp Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp
     2--- Source/WebCore/platform/graphics/gstreamer.orig/VideoSinkGStreamer.cpp      2015-04-20 15:30:23.000000000 -0700
     3+++ Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp   2015-04-20 15:33:39.000000000 -0700
     4@@ -118,7 +118,7 @@
     5     WebKitVideoSink* sink = reinterpret_cast<WebKitVideoSink*>(data);
     6     WebKitVideoSinkPrivate* priv = sink->priv;
     7 
     8-    GMutexLocker lock(priv->bufferMutex);
     9+    WebCore::GMutexLocker lock(priv->bufferMutex);
     10     GstBuffer* buffer = priv->buffer;
     11     priv->buffer = 0;
     12     priv->timeoutId = 0;
     13@@ -140,7 +140,7 @@
     14     WebKitVideoSink* sink = WEBKIT_VIDEO_SINK(baseSink);
     15     WebKitVideoSinkPrivate* priv = sink->priv;
     16 
     17-    GMutexLocker lock(priv->bufferMutex);
     18+    WebCore::GMutexLocker lock(priv->bufferMutex);
     19 
     20     if (priv->unlocked)
     21         return GST_FLOW_OK;
     22@@ -279,7 +279,7 @@
     23 
     24 static void unlockBufferMutex(WebKitVideoSinkPrivate* priv)
     25 {
     26-    GMutexLocker lock(priv->bufferMutex);
     27+    WebCore::GMutexLocker lock(priv->bufferMutex);
     28 
     29     if (priv->buffer) {
     30         gst_buffer_unref(priv->buffer);
     31@@ -305,7 +305,7 @@
     32     WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv;
     33 
     34     {
     35-        GMutexLocker lock(priv->bufferMutex);
     36+        WebCore::GMutexLocker lock(priv->bufferMutex);
     37         priv->unlocked = false;
     38     }
     39 
     40@@ -330,7 +330,7 @@
     41 {
     42     WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv;
     43 
     44-    GMutexLocker lock(priv->bufferMutex);
     45+    WebCore::GMutexLocker lock(priv->bufferMutex);
     46     priv->unlocked = false;
     47     return TRUE;
     48 }
     49Only in Source/WebCore/platform/graphics/gstreamer: VideoSinkGStreamer.cpp-e
     50diff -ur Source/WebCore/platform/graphics/gstreamer.orig/WebKitWebSourceGStreamer.cpp Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
     51--- Source/WebCore/platform/graphics/gstreamer.orig/WebKitWebSourceGStreamer.cpp        2015-04-20 15:30:23.000000000 -0700
     52+++ Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp     2015-04-20 15:33:39.000000000 -0700
     53@@ -346,7 +346,7 @@
     54 
     55     switch (propID) {
     56     case PROP_IRADIO_MODE: {
     57-        GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     58+        WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     59         priv->iradioMode = g_value_get_boolean(value);
     60         break;
     61     }
     62@@ -364,7 +364,7 @@
     63     WebKitWebSrc* src = WEBKIT_WEB_SRC(object);
     64     WebKitWebSrcPrivate* priv = src->priv;
     65 
     66-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     67+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     68     switch (propID) {
     69     case PROP_IRADIO_MODE:
     70         g_value_set_boolean(value, priv->iradioMode);
     71@@ -417,7 +417,7 @@
     72 
     73     ASSERT(isMainThread());
     74 
     75-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     76+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     77 
     78     bool seeking = priv->seekID;
     79 
     80@@ -476,7 +476,7 @@
     81 
     82     ASSERT(isMainThread());
     83 
     84-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     85+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     86 
     87     priv->startID = 0;
     88     priv->corsAccessCheck = CORSNoCheck;
     89@@ -573,7 +573,7 @@
     90         return ret;
     91     }
     92 
     93-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     94+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     95     switch (transition) {
     96     case GST_STATE_CHANGE_READY_TO_PAUSED:
     97         GST_DEBUG_OBJECT(src, "READY->PAUSED");
     98@@ -604,7 +604,7 @@
     99         gst_query_parse_duration(query, &format, NULL);
     100 
     101         GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format));
     102-        GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     103+        WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     104         if (format == GST_FORMAT_BYTES && src->priv->size > 0) {
     105             gst_query_set_duration(query, format, src->priv->size);
     106             result = TRUE;
     107@@ -612,7 +612,7 @@
     108         break;
     109     }
     110     case GST_QUERY_URI: {
     111-        GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     112+        WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     113         gst_query_set_uri(query, src->priv->uri);
     114         result = TRUE;
     115         break;
     116@@ -653,7 +653,7 @@
     117     WebKitWebSrc* src = WEBKIT_WEB_SRC(handler);
     118     gchar* ret;
     119 
     120-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     121+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     122     ret = g_strdup(src->priv->uri);
     123     return ret;
     124 }
     125@@ -668,7 +668,7 @@
     126         return FALSE;
     127     }
     128 
     129-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     130+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     131 
     132     g_free(priv->uri);
     133     priv->uri = 0;
     134@@ -704,7 +704,7 @@
     135 
     136     ASSERT(isMainThread());
     137 
     138-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     139+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     140     // already stopped
     141     if (!priv->needDataID)
     142         return FALSE;
     143@@ -725,7 +725,7 @@
     144 
     145     GST_DEBUG_OBJECT(src, "Need more data: %u", length);
     146 
     147-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     148+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     149     if (priv->needDataID || !priv->paused) {
     150         return;
     151     }
     152@@ -739,7 +739,7 @@
     153 
     154     ASSERT(isMainThread());
     155 
     156-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     157+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     158     // already stopped
     159     if (!priv->enoughDataID)
     160         return FALSE;
     161@@ -760,7 +760,7 @@
     162 
     163     GST_DEBUG_OBJECT(src, "Have enough data");
     164 
     165-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     166+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     167     if (priv->enoughDataID || priv->paused) {
     168         return;
     169     }
     170@@ -774,7 +774,7 @@
     171 
     172     ASSERT(isMainThread());
     173 
     174-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     175+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     176     // already stopped
     177     if (!priv->seekID)
     178         return FALSE;
     179@@ -792,7 +792,7 @@
     180     WebKitWebSrcPrivate* priv = src->priv;
     181 
     182     GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset);
     183-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     184+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     185     if (offset == priv->offset && priv->requestedOffset == priv->offset)
     186         return TRUE;
     187 
     188@@ -811,7 +811,7 @@
     189 void webKitWebSrcSetMediaPlayer(WebKitWebSrc* src, WebCore::MediaPlayer* player)
     190 {
     191     ASSERT(player);
     192-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     193+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     194     src->priv->player = player;
     195 }
     196 
     197@@ -841,7 +841,7 @@
     198 
     199     mapGstBuffer(buffer);
     200 
     201-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     202+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     203     priv->buffer = adoptGRef(buffer);
     204     locker.unlock();
     205 
     206@@ -867,7 +867,7 @@
     207         return;
     208     }
     209 
     210-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     211+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     212 
     213     priv->corsAccessCheck = corsAccessCheck;
     214 
     215@@ -966,7 +966,7 @@
     216     WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src);
     217     WebKitWebSrcPrivate* priv = src->priv;
     218 
     219-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     220+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     221 
     222     GST_LOG_OBJECT(src, "Have %lld bytes of data", priv->buffer ? static_cast<long long>(gst_buffer_get_size(priv->buffer.get())) : length);
     223 
     224@@ -1035,7 +1035,7 @@
     225 
     226     GST_DEBUG_OBJECT(src, "Have EOS");
     227 
     228-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     229+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     230     if (!priv->seekID) {
     231         locker.unlock();
     232         gst_app_src_end_of_stream(priv->appsrc);
     233@@ -1194,7 +1194,7 @@
     234 
     235     GST_ERROR_OBJECT(src, "Request was blocked");
     236 
     237-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     238+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     239     uri.reset(g_strdup(src->priv->uri));
     240     locker.unlock();
     241 
     242@@ -1208,7 +1208,7 @@
     243 
     244     GST_ERROR_OBJECT(src, "Cannot show URL");
     245 
     246-    GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     247+    WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
     248     uri.reset(g_strdup(src->priv->uri));
     249     locker.unlock();
     250 
     251Only in Source/WebCore/platform/graphics/gstreamer: WebKitWebSourceGStreamer.cpp-e