From bb13e2d43c664359aa61fc39c31f75a5c3fb4f5e Mon Sep 17 00:00:00 2001
From: Thiago Macieira <thiago.macieira@nokia.com>
Date: Wed, 7 Oct 2009 12:04:44 +0200
Subject: Use dbus_threads_init_default instead of QMutex wrappers

The minimum version for the recursive mutexes is D-Bus 0.93. That's
also the same version that introduced the default thread functions. So
we don't need to provide ours anymore, just use the default.
---
 src/dbus/dbus.pro            |   1 -
 src/dbus/qdbus_symbols_p.h   |   3 +
 src/dbus/qdbusintegrator.cpp |   2 +-
 src/dbus/qdbusthread.cpp     | 149 -------------------------------------------
 4 files changed, 4 insertions(+), 151 deletions(-)
 delete mode 100644 src/dbus/qdbusthread.cpp

diff --git a/src/dbus/dbus.pro b/src/dbus/dbus.pro
index dcd8418..57c6a58 100644
--- a/src/dbus/dbus.pro
+++ b/src/dbus/dbus.pro
@@ -61,7 +61,6 @@ SOURCES += qdbusconnection.cpp  \
 	qdbusutil.cpp		\
 	qdbusintrospection.cpp	\
 	qdbusabstractadaptor.cpp \
-	qdbusthread.cpp \
 	qdbusinternalfilters.cpp \
 	qdbusmetaobject.cpp	\
 	qdbusxmlgenerator.cpp	\
diff --git a/src/dbus/qdbus_symbols_p.h b/src/dbus/qdbus_symbols_p.h
index bc90328..69c6ee4 100644
--- a/src/dbus/qdbus_symbols_p.h
+++ b/src/dbus/qdbus_symbols_p.h
@@ -357,6 +357,9 @@ DEFINEFUNC(dbus_bool_t     , dbus_type_is_basic, (int            typecode),
 DEFINEFUNC(dbus_bool_t     , dbus_type_is_fixed, (int            typecode),
            (typecode), return)
 
+/* dbus-thread.h */
+DEFINEFUNC(dbus_bool_t     , dbus_threads_init_default, (), (), return)
+
 QT_END_NAMESPACE
 
 #endif
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
index 6ff50ac..8143cba 100644
--- a/src/dbus/qdbusintegrator.cpp
+++ b/src/dbus/qdbusintegrator.cpp
@@ -920,7 +920,7 @@ QDBusConnectionPrivate::QDBusConnectionPrivate(QObject *p)
       watchAndTimeoutLock(QMutex::Recursive),
       rootNode(QString(QLatin1Char('/')))
 {
-    static const bool threads = qDBusInitThreads();
+    static const bool threads = q_dbus_threads_init_default();
     static const int debugging = ::isDebugging = qgetenv("QDBUS_DEBUG").toInt();
     Q_UNUSED(threads)
 
diff --git a/src/dbus/qdbusthread.cpp b/src/dbus/qdbusthread.cpp
deleted file mode 100644
index 7bc107a..0000000
--- a/src/dbus/qdbusthread.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDBus module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file.  Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights.  These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtCore/qmutex.h>
-#include <QtCore/qwaitcondition.h>
-
-#include <stdlib.h>
-#include <qdbus_symbols_p.h>
-
-QT_USE_NAMESPACE
-
-static DBusMutex* recursive_mutex_new()
-{
-    return reinterpret_cast<DBusMutex *>(new QMutex(QMutex::Recursive));
-}
-
-static void mutex_free(DBusMutex *mutex)
-{
-    delete reinterpret_cast<QMutex *>(mutex);
-}
-
-static void mutex_lock(DBusMutex *mutex)
-{
-    reinterpret_cast<QMutex *>(mutex)->lock();
-}
-
-static void mutex_unlock(DBusMutex *mutex)
-{
-    reinterpret_cast<QMutex *>(mutex)->unlock();
-}
-
-static DBusCondVar* condvar_new()
-{
-    return reinterpret_cast<DBusCondVar *>(new QWaitCondition);
-}
-
-static void condvar_free(DBusCondVar *cond)
-{
-    delete reinterpret_cast<QWaitCondition *>(cond);
-}
-
-static void condvar_wait(DBusCondVar *cond, DBusMutex *mutex)
-{
-    reinterpret_cast<QWaitCondition *>(cond)->wait(reinterpret_cast<QMutex *>(mutex));
-}
-
-static dbus_bool_t condvar_wait_timeout(DBusCondVar *cond, DBusMutex *mutex, int msec)
-{
-    return reinterpret_cast<QWaitCondition *>(cond)->wait(reinterpret_cast<QMutex *>(mutex), msec);
-}
-
-static void condvar_wake_one(DBusCondVar *cond)
-{
-    reinterpret_cast<QWaitCondition *>(cond)->wakeOne();
-}
-
-static void condvar_wake_all(DBusCondVar *cond)
-{
-    reinterpret_cast<QWaitCondition *>(cond)->wakeAll();
-}
-
-QT_BEGIN_NAMESPACE
-
-bool qDBusInitThreads()
-{
-    // Use only the non-recursive mutex functions
-    static DBusThreadFunctions fcn = {
-        DBUS_THREAD_FUNCTIONS_CONDVAR_NEW_MASK |
-        DBUS_THREAD_FUNCTIONS_CONDVAR_FREE_MASK |
-        DBUS_THREAD_FUNCTIONS_CONDVAR_WAIT_MASK |
-        DBUS_THREAD_FUNCTIONS_CONDVAR_WAIT_TIMEOUT_MASK |
-        DBUS_THREAD_FUNCTIONS_CONDVAR_WAKE_ONE_MASK |
-        DBUS_THREAD_FUNCTIONS_CONDVAR_WAKE_ALL_MASK |
-        DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_NEW_MASK |
-        DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_FREE_MASK |
-        DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_LOCK_MASK |
-        DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_UNLOCK_MASK,
-        0, 0, 0, 0, // non-recursive mutex functions
-        condvar_new,
-        condvar_free,
-        condvar_wait,
-        condvar_wait_timeout,
-        condvar_wake_one,
-        condvar_wake_all,
-        recursive_mutex_new,
-        mutex_free,
-        mutex_lock,
-        mutex_unlock,
-        0, 0, 0, 0
-    };
-
-#if !defined QT_LINKED_LIBDBUS
-    void (*threads_init_default)() = (void (*)())qdbus_resolve_conditionally("dbus_threads_init_default");
-    void (*threads_init)(DBusThreadFunctions *) = (void (*)(DBusThreadFunctions*))qdbus_resolve_conditionally("dbus_threads_init");
-
-    if (threads_init_default)
-        threads_init_default();
-    else if (threads_init)
-        threads_init(&fcn);
-    else
-        return false;
-
-    return true;
-#else
-    dbus_threads_init(&fcn);
-
-    return true;
-#endif
-}
-
-QT_END_NAMESPACE
-- 
cgit v0.12