File build-with-glib-231.diff of Package libQtWebKit4

--- configure.ac
+++ configure.ac
@@ -111,6 +111,9 @@
 AC_CHECK_HEADERS([pthread.h],
                  AC_DEFINE([HAVE_PTHREAD_H],[1],[Define if pthread exists]),
                  AC_MSG_ERROR([pthread support is required to build WebKit]))
+AC_CHECK_LIB(pthread, pthread_rwlock_init,
+                 AC_DEFINE([HAVE_PTHREAD_RWLOCK],[1],[Define if pthread rwlock is present]),
+                 AC_MSG_WARN([pthread rwlock support is not available]))
 fi
 
 # check for libjpeg the way Gtk does it.
--- Source/JavaScriptCore/GNUmakefile.list.am
+++ Source/JavaScriptCore/GNUmakefile.list.am
@@ -438,7 +438,6 @@
 	Source/JavaScriptCore/wtf/gobject/GRefPtr.h \
 	Source/JavaScriptCore/wtf/gobject/GTypedefs.h \
 	Source/JavaScriptCore/wtf/gtk/MainThreadGtk.cpp \
-	Source/JavaScriptCore/wtf/gtk/ThreadingGtk.cpp \
 	Source/JavaScriptCore/wtf/HashCountedSet.h \
 	Source/JavaScriptCore/wtf/HashFunctions.h \
 	Source/JavaScriptCore/wtf/HashIterators.h \
--- Source/JavaScriptCore/wtf/gobject/GOwnPtr.cpp
+++ Source/JavaScriptCore/wtf/gobject/GOwnPtr.cpp
@@ -37,18 +37,6 @@
     g_list_free(ptr);
 }
 
-template <> void freeOwnedGPtr<GCond>(GCond* ptr)
-{
-    if (ptr)
-        g_cond_free(ptr);
-}
-
-template <> void freeOwnedGPtr<GMutex>(GMutex* ptr)
-{
-    if (ptr)
-        g_mutex_free(ptr);
-}
-
 template <> void freeOwnedGPtr<GPatternSpec>(GPatternSpec* ptr)
 {
     if (ptr)
--- Source/JavaScriptCore/wtf/gobject/GOwnPtr.h
+++ Source/JavaScriptCore/wtf/gobject/GOwnPtr.h
@@ -35,8 +35,6 @@
 template <typename T> inline void freeOwnedGPtr(T* ptr);
 template<> void freeOwnedGPtr<GError>(GError*);
 template<> void freeOwnedGPtr<GList>(GList*);
-template<> void freeOwnedGPtr<GCond>(GCond*);
-template<> void freeOwnedGPtr<GMutex>(GMutex*);
 template<> void freeOwnedGPtr<GPatternSpec>(GPatternSpec*);
 template<> void freeOwnedGPtr<GDir>(GDir*);
 
--- Source/JavaScriptCore/wtf/gobject/GTypedefs.h
+++ Source/JavaScriptCore/wtf/gobject/GTypedefs.h
@@ -39,7 +39,6 @@
 typedef struct _GAsyncResult GAsyncResult;
 typedef struct _GCancellable GCancellable;
 typedef struct _GCharsetConverter GCharsetConverter;
-typedef struct _GCond GCond;
 typedef struct _GDir GDir;
 typedef struct _GdkAtom* GdkAtom;
 typedef struct _GdkCursor GdkCursor;
@@ -52,7 +51,6 @@
 typedef struct _GHashTable GHashTable;
 typedef struct _GInputStream GInputStream;
 typedef struct _GList GList;
-typedef struct _GMutex GMutex;
 typedef struct _GPatternSpec GPatternSpec;
 typedef struct _GPollableOutputStream GPollableOutputStream;
 typedef struct _GSocketClient GSocketClient;
--- Source/JavaScriptCore/wtf/ThreadingPrimitives.h
+++ Source/JavaScriptCore/wtf/ThreadingPrimitives.h
@@ -44,8 +44,6 @@
 
 #if USE(PTHREADS)
 #include <pthread.h>
-#elif PLATFORM(GTK)
-#include "GOwnPtr.h"
 #endif
 
 #if PLATFORM(QT)
@@ -66,10 +64,6 @@
 typedef void* PlatformReadWriteLock;
 #endif
 typedef pthread_cond_t PlatformCondition;
-#elif PLATFORM(GTK)
-typedef GOwnPtr<GMutex> PlatformMutex;
-typedef void* PlatformReadWriteLock; // FIXME: Implement.
-typedef GOwnPtr<GCond> PlatformCondition;
 #elif PLATFORM(QT)
 typedef QT_PREPEND_NAMESPACE(QMutex)* PlatformMutex;
 typedef void* PlatformReadWriteLock; // FIXME: Implement.
--- Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp	
+++ Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp	
@@ -34,4 +34,5 @@
 #include <gst/gst.h>
 #include <gst/video/video.h>
+#include <wtf/FastAllocBase.h>
 
 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE("sink",
@@ -106,6 +107,13 @@
 
     sink->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE(sink, WEBKIT_TYPE_VIDEO_SINK, WebKitVideoSinkPrivate);
+#if GLIB_CHECK_VERSION(2, 31, 0)
+    priv->data_cond = WTF::fastNew<GCond>();
+    g_cond_init(priv->data_cond);
+    priv->buffer_mutex = WTF::fastNew<GMutex>();
+    g_mutex_init(priv->buffer_mutex);
+#else
     priv->data_cond = g_cond_new();
     priv->buffer_mutex = g_mutex_new();
+#endif
 }
 
@@ -243,10 +251,20 @@
 
     if (priv->data_cond) {
+#if GLIB_CHECK_VERSION(2, 31, 0)
+        g_cond_clear(priv->data_cond);
+        WTF::fastDelete(priv->data_cond);
+#else
         g_cond_free(priv->data_cond);
+#endif
         priv->data_cond = 0;
     }
 
     if (priv->buffer_mutex) {
+#if GLIB_CHECK_VERSION(2, 31, 0)
+        g_mutex_clear(priv->buffer_mutex);
+        WTF::fastDelete(priv->buffer_mutex);
+#else
         g_mutex_free(priv->buffer_mutex);
+#endif
         priv->buffer_mutex = 0;
     }
openSUSE Build Service is sponsored by