diff options
| author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-06-08 23:22:16 +0100 | 
|---|---|---|
| committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-06-08 23:22:16 +0100 | 
| commit | d50e22f72987597152198811a22e50a97a902bcc (patch) | |
| tree | e6bca75114214dd7669bd91c9d977f50e8c09390 /protocols/jabber/jabber_util.c | |
| parent | f1cea66ac5fcd860b2702e6b8ab01fcb79179bd4 (diff) | |
| parent | 04a927cb733e2c47424569550a2faeb108094636 (diff) | |
Merging memory leak fixes from devel, time to find the ui-fix-specific
leaks.
Diffstat (limited to 'protocols/jabber/jabber_util.c')
| -rw-r--r-- | protocols/jabber/jabber_util.c | 26 | 
1 files changed, 26 insertions, 0 deletions
| diff --git a/protocols/jabber/jabber_util.c b/protocols/jabber/jabber_util.c index 608cb52a..ab3e6c38 100644 --- a/protocols/jabber/jabber_util.c +++ b/protocols/jabber/jabber_util.c @@ -668,6 +668,32 @@ int jabber_buddy_remove_bare( struct im_connection *ic, char *bare_jid )  	}  } +static gboolean jabber_buddy_remove_all_cb( gpointer key, gpointer value, gpointer data ) +{ +	struct jabber_buddy *bud, *next; +	 +	bud = value; +	while( bud ) +	{ +		next = bud->next; +		g_free( bud->ext_jid ); +		g_free( bud->full_jid ); +		g_free( bud->away_message ); +		g_free( bud ); +		bud = next; +	} +	 +	return TRUE; +} + +void jabber_buddy_remove_all( struct im_connection *ic ) +{ +	struct jabber_data *jd = ic->proto_data; +	 +	g_hash_table_foreach_remove( jd->buddies, jabber_buddy_remove_all_cb, NULL ); +	g_hash_table_destroy( jd->buddies ); +} +  time_t jabber_get_timestamp( struct xt_node *xt )  {  	struct xt_node *c; | 
