diff options
-rw-r--r-- | ipc.c | 4 | ||||
-rw-r--r-- | lib/oauth.c | 2 | ||||
-rw-r--r-- | protocols/bee_user.c | 4 | ||||
-rw-r--r-- | protocols/msn/msn.c | 4 | ||||
-rw-r--r-- | protocols/msn/ns.c | 3 | ||||
-rw-r--r-- | protocols/msn/sb.c | 3 | ||||
-rw-r--r-- | protocols/yahoo/yahoo.c | 2 |
7 files changed, 10 insertions, 12 deletions
@@ -775,14 +775,14 @@ void ipc_master_free_one(struct bitlbee_child *c) close(c->to_fd); } + child_list = g_slist_remove(child_list, c); + g_free(c->host); g_free(c->nick); g_free(c->realname); g_free(c->password); g_free(c); - child_list = g_slist_remove(child_list, c); - /* Also, if any child has a reference to this one, remove it. */ for (l = child_list; l; l = l->next) { struct bitlbee_child *oc = l->data; diff --git a/lib/oauth.c b/lib/oauth.c index f15a7135..ac5bc654 100644 --- a/lib/oauth.c +++ b/lib/oauth.c @@ -106,8 +106,8 @@ void oauth_params_del(GSList **params, const char *key) if (strncmp((char *) l->data, key, key_len) == 0 && ((char *) l->data)[key_len] == '=') { - g_free(l->data); *params = g_slist_remove(*params, l->data); + g_free(l->data); } } } diff --git a/protocols/bee_user.c b/protocols/bee_user.c index ea1be3db..0a211c71 100644 --- a/protocols/bee_user.c +++ b/protocols/bee_user.c @@ -67,6 +67,8 @@ int bee_user_free(bee_t *bee, bee_user_t *bu) bu->ic->acc->prpl->buddy_data_free(bu); } + bee->users = g_slist_remove(bee->users, bu); + g_free(bu->handle); g_free(bu->fullname); g_free(bu->nick); @@ -74,8 +76,6 @@ int bee_user_free(bee_t *bee, bee_user_t *bu) g_free(bu->status_msg); g_free(bu); - bee->users = g_slist_remove(bee->users, bu); - return 1; } diff --git a/protocols/msn/msn.c b/protocols/msn/msn.c index 6ab35696..cb3f842c 100644 --- a/protocols/msn/msn.c +++ b/protocols/msn/msn.c @@ -111,10 +111,10 @@ static void msn_logout(struct im_connection *ic) while (md->groups) { struct msn_group *mg = md->groups->data; + md->groups = g_slist_remove(md->groups, mg); g_free(mg->id); g_free(mg->name); g_free(mg); - md->groups = g_slist_remove(md->groups, mg); } g_free(md->profile_rid); @@ -126,10 +126,10 @@ static void msn_logout(struct im_connection *ic) while (md->grpq) { struct msn_groupadd *ga = md->grpq->data; + md->grpq = g_slist_remove(md->grpq, ga); g_free(ga->group); g_free(ga->who); g_free(ga); - md->grpq = g_slist_remove(md->grpq, ga); } g_free(md); diff --git a/protocols/msn/ns.c b/protocols/msn/ns.c index f6c553a8..02abc52c 100644 --- a/protocols/msn/ns.c +++ b/protocols/msn/ns.c @@ -943,10 +943,9 @@ void msn_ns_oim_send_queue(struct im_connection *ic, GSList **msgq) while (*msgq != NULL) { struct msn_message *m = (*msgq)->data; + *msgq = g_slist_remove(*msgq, m); g_free(m->who); g_free(m->text); g_free(m); - - *msgq = g_slist_remove(*msgq, m); } } diff --git a/protocols/msn/sb.c b/protocols/msn/sb.c index d0412961..a9f3838f 100644 --- a/protocols/msn/sb.c +++ b/protocols/msn/sb.c @@ -518,11 +518,10 @@ static int msn_sb_command(struct msn_handler_data *handler, char **cmd, int num_ st = msn_sb_sendmessage(sb, m->text); } } + sb->msgq = g_slist_remove(sb->msgq, m); g_free(m->text); g_free(m->who); g_free(m); - - sb->msgq = g_slist_remove(sb->msgq, m); } msn_sb_start_keepalives(sb, FALSE); diff --git a/protocols/yahoo/yahoo.c b/protocols/yahoo/yahoo.c index 8048ef8f..728803fb 100644 --- a/protocols/yahoo/yahoo.c +++ b/protocols/yahoo/yahoo.c @@ -732,9 +732,9 @@ void ext_yahoo_remove_handler(int id, int tag) while (l) { inp = l->data; if (inp->h == tag) { + byahoo_inputs = g_slist_remove(byahoo_inputs, inp); g_free(inp->d); g_free(inp); - byahoo_inputs = g_slist_remove(byahoo_inputs, inp); break; } l = l->next; |