summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@profusion.mobi>2013-04-08 17:56:18 -0300
committerMarcel Holtmann <marcel@holtmann.org>2013-04-08 20:07:57 -0700
commitbefbfd1d15c4905b6f68d40b1fd68acc0fec231c (patch)
tree50fe9f421510f66e779c30fd1ea9a92fe45b77ab
parent715989c32fb995916c429763f08b573f417b32c3 (diff)
downloadconnman-befbfd1d15c4905b6f68d40b1fd68acc0fec231c.tar.gz
connman-befbfd1d15c4905b6f68d40b1fd68acc0fec231c.tar.bz2
connman-befbfd1d15c4905b6f68d40b1fd68acc0fec231c.zip
gdbus: Use gcc builtin instead of g_atomic
g_atomic_* end up using G_STATIC_ASSERT, causing gcc 4.8 to yell due to -Wunused-local-typedefs. gdbus/client.c: In function ‘g_dbus_client_ref’: /usr/include/glib-2.0/glib/gmacros.h:162:53: error: typedef ‘_GStaticAssertCompileTimeAssertion_2’ locally defined but not used [-Werror=unused-local-typedefs] #define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1]
-rw-r--r--gdbus/client.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gdbus/client.c b/gdbus/client.c
index 369e3acf..1998fc8d 100644
--- a/gdbus/client.c
+++ b/gdbus/client.c
@@ -33,7 +33,7 @@
#define METHOD_CALL_TIMEOUT (300 * 1000)
struct GDBusClient {
- gint ref_count;
+ int ref_count;
DBusConnection *dbus_conn;
char *service_name;
char *unique_name;
@@ -54,7 +54,7 @@ struct GDBusClient {
};
struct GDBusProxy {
- gint ref_count;
+ int ref_count;
GDBusClient *client;
char *obj_path;
char *interface;
@@ -447,7 +447,7 @@ GDBusProxy *g_dbus_proxy_ref(GDBusProxy *proxy)
if (proxy == NULL)
return NULL;
- g_atomic_int_inc(&proxy->ref_count);
+ __sync_fetch_and_add(&proxy->ref_count, 1);
return proxy;
}
@@ -457,7 +457,7 @@ void g_dbus_proxy_unref(GDBusProxy *proxy)
if (proxy == NULL)
return;
- if (g_atomic_int_dec_and_test(&proxy->ref_count) == FALSE)
+ if (__sync_sub_and_fetch(&proxy->ref_count, 1) > 0)
return;
g_hash_table_destroy(proxy->prop_list);
@@ -1268,7 +1268,7 @@ GDBusClient *g_dbus_client_ref(GDBusClient *client)
if (client == NULL)
return NULL;
- g_atomic_int_inc(&client->ref_count);
+ __sync_fetch_and_add(&client->ref_count, 1);
return client;
}
@@ -1280,7 +1280,7 @@ void g_dbus_client_unref(GDBusClient *client)
if (client == NULL)
return;
- if (g_atomic_int_dec_and_test(&client->ref_count) == FALSE)
+ if (__sync_sub_and_fetch(&client->ref_count, 1) > 0)
return;
if (client->pending_call != NULL) {