static void place_free(struct mwPlace *place) { struct mwServicePlace *srvc; if(! place) return; srvc = place->service; g_return_if_fail(srvc != NULL); srvc->places = g_list_remove_all(srvc->places, place); mw_datum_clear(&place->client_data); g_hash_table_destroy(place->members); g_free(place->name); g_free(place->title); g_free(place); }
/** clean and free a conference structure */ static void conf_free(struct mwConference *conf) { struct mwServiceConference *srvc; /* this shouldn't ever happen, but just to be sure */ g_return_if_fail(conf != NULL); srvc = conf->service; if(conf->members) g_hash_table_destroy(conf->members); srvc->confs = g_list_remove_all(srvc->confs, conf); mw_datum_clear(&conf->client_data); g_free(conf->name); g_free(conf->title); g_free(conf); }
void mwPlace_removeClientData(struct mwPlace *place) { g_return_if_fail(place != NULL); mw_datum_clear(&place->client_data); }
void mwFileTransfer_removeClientData(struct mwFileTransfer *ft) { g_return_if_fail(ft != NULL); mw_datum_clear(&ft->client_data); }
void mwChannel_removeServiceData(struct mwChannel *chan) { g_return_if_fail(chan != NULL); mw_datum_clear(&chan->srvc_data); }
void mwDirectory_removeClientData(struct mwDirectory *dir) { g_return_if_fail(dir != NULL); mw_datum_clear(&dir->client_data); }
void mwConference_removeClientData(struct mwConference *conference) { g_return_if_fail(conference != NULL); mw_datum_clear(&conference->client_data); }