summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-07 20:02:20 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-07 20:02:20 +0000
commit51d4e4c1239baecfdb8a988f5c6612731f00a1c8 (patch)
treee859ed2d7933327ef595a99cacb4536cda350fb4
parent429b32fba6f5ad14db31fe2690974b57df858999 (diff)
fix small memory leak and make connection id atomic
-rw-r--r--src/trg-client.c6
-rw-r--r--src/trg-client.h2
-rw-r--r--src/trg-menu-bar.c2
3 files changed, 6 insertions, 4 deletions
diff --git a/src/trg-client.c b/src/trg-client.c
index e01da05..ec53e3e 100644
--- a/src/trg-client.c
+++ b/src/trg-client.c
@@ -53,7 +53,7 @@ typedef struct _TrgClientPrivate TrgClientPrivate;
struct _TrgClientPrivate {
char *session_id;
- guint connid;
+ gint connid;
gboolean activeOnlyUpdate;
guint failCount;
guint interval;
@@ -177,7 +177,7 @@ void trg_client_set_session(TrgClient * tc, JsonObject * session)
json_object_unref(priv->session);
} else {
session_get_version(session, &priv->version);
- priv->connid++;
+ g_atomic_int_inc(&priv->connid);
}
priv->session = session;
@@ -657,7 +657,7 @@ static void dispatch_async_threadfunc(trg_request *req,
rsp->cb_data = req->cb_data;
- if (req->callback && req->connid == priv->connid)
+ if (req->callback && req->connid == g_atomic_int_get(&priv->connid))
g_idle_add(req->callback, rsp);
else
trg_response_free(rsp);
diff --git a/src/trg-client.h b/src/trg-client.h
index 0c35edb..1ac46ed 100644
--- a/src/trg-client.h
+++ b/src/trg-client.h
@@ -70,7 +70,7 @@ typedef struct {
typedef struct
{
- int connid;
+ gint connid;
JsonNode *node;
gchar *str;
GSourceFunc callback;
diff --git a/src/trg-menu-bar.c b/src/trg-menu-bar.c
index abc4b5b..db7dff1 100644
--- a/src/trg-menu-bar.c
+++ b/src/trg-menu-bar.c
@@ -419,6 +419,8 @@ GtkWidget *trg_menu_bar_file_connect_menu_new(TrgMainWindow *win, TrgPrefs *p)
GTK_STOCK_CONNECT, profile);
}
+ g_list_free(profiles);
+
return menu;
}