Title: [166916] trunk/Source
Revision
166916
Author
ago...@igalia.com
Date
2014-04-08 00:37:37 -0700 (Tue, 08 Apr 2014)

Log Message

[GTK] [EFL] Build fails with GCC < 4.8.x
https://bugs.webkit.org/show_bug.cgi?id=130585

Reviewed by Martin Robinson.

The behavior in lower versions of GCC seem to be related to
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2132.

Provided explicit casts for the failing ambiguous overloads.

Source/WebCore:

* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::createBus):
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcChangeState):
(webKitMediaVideoSrcNeedDataCb):
(webKitMediaAudioSrcNeedDataCb):
(webKitMediaVideoSrcEnoughDataCb):
(webKitMediaAudioSrcEnoughDataCb):
(webKitMediaVideoSrcSeekDataCb):
(webKitMediaAudioSrcSeekDataCb):
* platform/gtk/GtkDragAndDropHelper.cpp:
(WebCore::GtkDragAndDropHelper::handleDragLeave):
* platform/gtk/SharedTimerGtk.cpp:
(WebCore::setSharedTimerFireInterval):

Source/WTF:

* wtf/gtk/MainThreadGtk.cpp:
(WTF::scheduleDispatchFunctionsOnMainThread):
* wtf/gtk/RunLoopGtk.cpp:
(WTF::RunLoop::wakeUp): Provided lambda with a RefPtr instead of
ref and de-referring.

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (166915 => 166916)


--- trunk/Source/WTF/ChangeLog	2014-04-08 07:14:20 UTC (rev 166915)
+++ trunk/Source/WTF/ChangeLog	2014-04-08 07:37:37 UTC (rev 166916)
@@ -1,3 +1,21 @@
+2014-04-08  Andres Gomez  <ago...@igalia.com>
+
+        [GTK] [EFL] Build fails with GCC < 4.8.x
+        https://bugs.webkit.org/show_bug.cgi?id=130585
+
+        Reviewed by Martin Robinson.
+
+        The behavior in lower versions of GCC seem to be related to
+        http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2132.
+
+        Provided explicit casts for the failing ambiguous overloads.
+
+        * wtf/gtk/MainThreadGtk.cpp:
+        (WTF::scheduleDispatchFunctionsOnMainThread):
+        * wtf/gtk/RunLoopGtk.cpp:
+        (WTF::RunLoop::wakeUp): Provided lambda with a RefPtr instead of
+        ref and de-referring.
+
 2014-04-04  Mark Lam  <mark....@apple.com>
 
         Date object needs to check for ES5 15.9.1.14 TimeClip limit.

Modified: trunk/Source/WTF/wtf/gtk/MainThreadGtk.cpp (166915 => 166916)


--- trunk/Source/WTF/wtf/gtk/MainThreadGtk.cpp	2014-04-08 07:14:20 UTC (rev 166915)
+++ trunk/Source/WTF/wtf/gtk/MainThreadGtk.cpp	2014-04-08 07:37:37 UTC (rev 166916)
@@ -40,7 +40,7 @@
 
 void scheduleDispatchFunctionsOnMainThread()
 {
-    GMainLoopSource::createAndDeleteOnDestroy().schedule("[WebKit] dispatchFunctionsFromMainThread", dispatchFunctionsFromMainThread);
+    GMainLoopSource::createAndDeleteOnDestroy().schedule("[WebKit] dispatchFunctionsFromMainThread", std::function<void()>(dispatchFunctionsFromMainThread));
 }
 
 } // namespace WTF

Modified: trunk/Source/WTF/wtf/gtk/RunLoopGtk.cpp (166915 => 166916)


--- trunk/Source/WTF/wtf/gtk/RunLoopGtk.cpp	2014-04-08 07:14:20 UTC (rev 166915)
+++ trunk/Source/WTF/wtf/gtk/RunLoopGtk.cpp	2014-04-08 07:37:37 UTC (rev 166916)
@@ -99,9 +99,10 @@
 
 void RunLoop::wakeUp()
 {
-    ref();
-    GMainLoopSource::createAndDeleteOnDestroy().schedule("[WebKit] RunLoop work", std::bind(&RunLoop::performWork, this),
-        G_PRIORITY_DEFAULT, [this] { deref(); });
+    RefPtr<RunLoop> runLoop(this);
+    GMainLoopSource::createAndDeleteOnDestroy().schedule("[WebKit] RunLoop work", std::function<void()>([runLoop] {
+        runLoop->performWork();
+    }));
     g_main_context_wakeup(m_runLoopContext.get());
 }
 

Modified: trunk/Source/WebCore/ChangeLog (166915 => 166916)


--- trunk/Source/WebCore/ChangeLog	2014-04-08 07:14:20 UTC (rev 166915)
+++ trunk/Source/WebCore/ChangeLog	2014-04-08 07:37:37 UTC (rev 166916)
@@ -1,3 +1,30 @@
+2014-04-08  Andres Gomez  <ago...@igalia.com>
+
+        [GTK] [EFL] Build fails with GCC < 4.8.x
+        https://bugs.webkit.org/show_bug.cgi?id=130585
+
+        Reviewed by Martin Robinson.
+
+        The behavior in lower versions of GCC seem to be related to
+        http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2132.
+
+        Provided explicit casts for the failing ambiguous overloads.
+
+        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
+        (WebCore::AudioFileReader::createBus):
+        * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
+        (webKitMediaSrcChangeState):
+        (webKitMediaVideoSrcNeedDataCb):
+        (webKitMediaAudioSrcNeedDataCb):
+        (webKitMediaVideoSrcEnoughDataCb):
+        (webKitMediaAudioSrcEnoughDataCb):
+        (webKitMediaVideoSrcSeekDataCb):
+        (webKitMediaAudioSrcSeekDataCb):
+        * platform/gtk/GtkDragAndDropHelper.cpp:
+        (WebCore::GtkDragAndDropHelper::handleDragLeave):
+        * platform/gtk/SharedTimerGtk.cpp:
+        (WebCore::setSharedTimerFireInterval):
+
 2014-04-08  Gyuyoung Kim  <gyuyoung....@samsung.com>
 
         Change NavigatorContentUtils client ownership from port side to NavigatorContentUtils

Modified: trunk/Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp (166915 => 166916)


--- trunk/Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp	2014-04-08 07:14:20 UTC (rev 166915)
+++ trunk/Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp	2014-04-08 07:37:37 UTC (rev 166916)
@@ -335,7 +335,7 @@
 
     // Start the pipeline processing just after the loop is started.
     GMainLoopSource source;
-    source.schedule("[WebKit] AudioFileReader::decodeAudioForBusCreation", std::bind(&AudioFileReader::decodeAudioForBusCreation, this), G_PRIORITY_DEFAULT, nullptr, context.get());
+    source.schedule("[WebKit] AudioFileReader::decodeAudioForBusCreation", std::function<void()>(std::bind(&AudioFileReader::decodeAudioForBusCreation, this)), G_PRIORITY_DEFAULT, nullptr, context.get());
 
     g_main_loop_run(m_loop.get());
     g_main_context_pop_thread_default(context.get());

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp (166915 => 166916)


--- trunk/Source/WebCore/platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp	2014-04-08 07:14:20 UTC (rev 166915)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp	2014-04-08 07:37:37 UTC (rev 166916)
@@ -366,11 +366,11 @@
         GST_OBJECT_LOCK(src);
 
         gst_object_ref(src);
-        priv->sourceVideo.start.schedule("[WebKit] webKitMediaVideoSrcStart", std::bind(webKitMediaVideoSrcStart, src), G_PRIORITY_DEFAULT,
+        priv->sourceVideo.start.schedule("[WebKit] webKitMediaVideoSrcStart", std::function<void()>(std::bind(webKitMediaVideoSrcStart, src)), G_PRIORITY_DEFAULT,
             [src] { gst_object_unref(src); });
 
         gst_object_ref(src);
-        priv->sourceAudio.start.schedule("[WebKit] webKitMediaAudioSrcStart", std::bind(webKitMediaAudioSrcStart, src), G_PRIORITY_DEFAULT,
+        priv->sourceAudio.start.schedule("[WebKit] webKitMediaAudioSrcStart", std::function<void()>(std::bind(webKitMediaAudioSrcStart, src)), G_PRIORITY_DEFAULT,
             [src] { gst_object_unref(src); });
 
         GST_OBJECT_UNLOCK(src);
@@ -380,11 +380,11 @@
         GST_OBJECT_LOCK(src);
 
         gst_object_ref(src);
-        priv->sourceVideo.stop.schedule("[WebKit] webKitMediaVideoSrcStop", std::bind(webKitMediaVideoSrcStop, src), G_PRIORITY_DEFAULT,
+        priv->sourceVideo.stop.schedule("[WebKit] webKitMediaVideoSrcStop", std::function<void()>(std::bind(webKitMediaVideoSrcStop, src)), G_PRIORITY_DEFAULT,
             [src] { gst_object_unref(src); });
 
         gst_object_ref(src);
-        priv->sourceAudio.stop.schedule("[WebKit] webKitMediaAudioSrcStop", std::bind(webKitMediaAudioSrcStop, src), G_PRIORITY_DEFAULT,
+        priv->sourceAudio.stop.schedule("[WebKit] webKitMediaAudioSrcStop", std::function<void()>(std::bind(webKitMediaAudioSrcStop, src)), G_PRIORITY_DEFAULT,
             [src] { gst_object_unref(src); });
 
         GST_OBJECT_UNLOCK(src);
@@ -524,7 +524,7 @@
     }
 
     gst_object_ref(src);
-    priv->sourceVideo.needData.schedule("[WebKit] webKitMediaVideoSrcNeedDataMainCb", std::bind(webKitMediaVideoSrcNeedDataMainCb, src), G_PRIORITY_DEFAULT,
+    priv->sourceVideo.needData.schedule("[WebKit] webKitMediaVideoSrcNeedDataMainCb", std::function<void()>(std::bind(webKitMediaVideoSrcNeedDataMainCb, src)), G_PRIORITY_DEFAULT,
         [src] { gst_object_unref(src); });
     GST_OBJECT_UNLOCK(src);
 }
@@ -543,7 +543,7 @@
     }
 
     gst_object_ref(src);
-    priv->sourceAudio.needData.schedule("[WebKit] webKitMediaAudioSrcNeedDataMainCb", std::bind(webKitMediaAudioSrcNeedDataMainCb, src), G_PRIORITY_DEFAULT,
+    priv->sourceAudio.needData.schedule("[WebKit] webKitMediaAudioSrcNeedDataMainCb", std::function<void()>(std::bind(webKitMediaAudioSrcNeedDataMainCb, src)), G_PRIORITY_DEFAULT,
         [src] { gst_object_unref(src); });
     GST_OBJECT_UNLOCK(src);
 }
@@ -580,7 +580,7 @@
     }
 
     gst_object_ref(src);
-    priv->sourceVideo.enoughData.schedule("[WebKit] webKitMediaVideoSrcEnoughDataMainCb", std::bind(webKitMediaVideoSrcEnoughDataMainCb, src), G_PRIORITY_DEFAULT,
+    priv->sourceVideo.enoughData.schedule("[WebKit] webKitMediaVideoSrcEnoughDataMainCb", std::function<void()>(std::bind(webKitMediaVideoSrcEnoughDataMainCb, src)), G_PRIORITY_DEFAULT,
         [src] { gst_object_unref(src); });
 
     GST_OBJECT_UNLOCK(src);
@@ -600,7 +600,7 @@
     }
 
     gst_object_ref(src);
-    priv->sourceAudio.enoughData.schedule("[WebKit] webKitMediaAudioSrcEnoughDataMainCb", std::bind(webKitMediaAudioSrcEnoughDataMainCb, src), G_PRIORITY_DEFAULT,
+    priv->sourceAudio.enoughData.schedule("[WebKit] webKitMediaAudioSrcEnoughDataMainCb", std::function<void()>(std::bind(webKitMediaAudioSrcEnoughDataMainCb, src)), G_PRIORITY_DEFAULT,
         [src] { gst_object_unref(src); });
 
     GST_OBJECT_UNLOCK(src);
@@ -642,7 +642,7 @@
     priv->sourceVideo.requestedOffset = offset;
 
     gst_object_ref(src);
-    priv->sourceVideo.seek.schedule("[WebKit] webKitMediaVideoSrcSeekMainCb", std::bind(webKitMediaVideoSrcSeekMainCb, src), G_PRIORITY_DEFAULT,
+    priv->sourceVideo.seek.schedule("[WebKit] webKitMediaVideoSrcSeekMainCb", std::function<void()>(std::bind(webKitMediaVideoSrcSeekMainCb, src)), G_PRIORITY_DEFAULT,
         [src] { gst_object_unref(src); });
 
     GST_OBJECT_UNLOCK(src);
@@ -675,7 +675,7 @@
     priv->sourceAudio.requestedOffset = offset;
 
     gst_object_ref(src);
-    priv->sourceAudio.seek.schedule("[WebKit] webKitMediaAudioSrcSeekMainCb", std::bind(webKitMediaAudioSrcSeekMainCb, src), G_PRIORITY_DEFAULT,
+    priv->sourceAudio.seek.schedule("[WebKit] webKitMediaAudioSrcSeekMainCb", std::function<void()>(std::bind(webKitMediaAudioSrcSeekMainCb, src)), G_PRIORITY_DEFAULT,
         [src] { gst_object_unref(src); });
 
     GST_OBJECT_UNLOCK(src);

Modified: trunk/Source/WebCore/platform/gtk/GtkDragAndDropHelper.cpp (166915 => 166916)


--- trunk/Source/WebCore/platform/gtk/GtkDragAndDropHelper.cpp	2014-04-08 07:14:20 UTC (rev 166915)
+++ trunk/Source/WebCore/platform/gtk/GtkDragAndDropHelper.cpp	2014-04-08 07:37:37 UTC (rev 166916)
@@ -99,7 +99,7 @@
     // the drag-drop signal. We want the actions for drag-leave to happen after
     // those for drag-drop, so schedule them to happen asynchronously here.
     context->exitedCallback = exitedCallback;
-    GMainLoopSource::createAndDeleteOnDestroy().schedule("[WebKit] handleDragLeaveLater", std::bind(&GtkDragAndDropHelper::handleDragLeaveLater, this, context));
+    GMainLoopSource::createAndDeleteOnDestroy().schedule("[WebKit] handleDragLeaveLater", std::function<void()>(std::bind(&GtkDragAndDropHelper::handleDragLeaveLater, this, context)));
 }
 
 static void queryNewDropContextData(DroppingContext* dropContext, GtkWidget* widget, guint time)

Modified: trunk/Source/WebCore/platform/gtk/SharedTimerGtk.cpp (166915 => 166916)


--- trunk/Source/WebCore/platform/gtk/SharedTimerGtk.cpp	2014-04-08 07:14:20 UTC (rev 166915)
+++ trunk/Source/WebCore/platform/gtk/SharedTimerGtk.cpp	2014-04-08 07:37:37 UTC (rev 166916)
@@ -47,7 +47,7 @@
 {
     ASSERT(sharedTimerFiredFunction);
 
-    gSharedTimer.scheduleAfterDelay("[WebKit] sharedTimerTimeoutCallback", sharedTimerFiredFunction,
+    gSharedTimer.scheduleAfterDelay("[WebKit] sharedTimerTimeoutCallback", std::function<void()>(sharedTimerFiredFunction),
         std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::duration<double>(interval)), GDK_PRIORITY_REDRAW);
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to