summaryrefslogtreecommitdiff
path: root/bus/connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'bus/connection.c')
-rw-r--r--bus/connection.c42
1 files changed, 4 insertions, 38 deletions
diff --git a/bus/connection.c b/bus/connection.c
index 70a0eb15..5121658d 100644
--- a/bus/connection.c
+++ b/bus/connection.c
@@ -43,8 +43,7 @@ struct BusConnections
DBusTimeout *expire_timeout; /**< Timeout for expiring incomplete connections. */
};
-static int connection_data_slot = -1;
-static int connection_data_slot_refcount = 0;
+static dbus_int32_t connection_data_slot = -1;
typedef struct
{
@@ -67,39 +66,6 @@ static dbus_bool_t expire_incomplete_timeout (void *data);
#define BUS_CONNECTION_DATA(connection) (dbus_connection_get_data ((connection), connection_data_slot))
-static dbus_bool_t
-connection_data_slot_ref (void)
-{
- if (connection_data_slot < 0)
- {
- connection_data_slot = dbus_connection_allocate_data_slot ();
-
- if (connection_data_slot < 0)
- return FALSE;
-
- _dbus_assert (connection_data_slot_refcount == 0);
- }
-
- connection_data_slot_refcount += 1;
-
- return TRUE;
-
-}
-
-static void
-connection_data_slot_unref (void)
-{
- _dbus_assert (connection_data_slot_refcount > 0);
-
- connection_data_slot_refcount -= 1;
-
- if (connection_data_slot_refcount == 0)
- {
- dbus_connection_free_data_slot (connection_data_slot);
- connection_data_slot = -1;
- }
-}
-
static DBusLoop*
connection_get_loop (DBusConnection *connection)
{
@@ -419,7 +385,7 @@ bus_connections_new (BusContext *context)
{
BusConnections *connections;
- if (!connection_data_slot_ref ())
+ if (!dbus_connection_allocate_data_slot (&connection_data_slot))
goto failed_0;
connections = dbus_new0 (BusConnections, 1);
@@ -456,7 +422,7 @@ bus_connections_new (BusContext *context)
failed_2:
dbus_free (connections);
failed_1:
- connection_data_slot_unref ();
+ dbus_connection_free_data_slot (&connection_data_slot);
failed_0:
return NULL;
}
@@ -515,7 +481,7 @@ bus_connections_unref (BusConnections *connections)
dbus_free (connections);
- connection_data_slot_unref ();
+ dbus_connection_free_data_slot (&connection_data_slot);
}
}