comparison src/status.c @ 11638:3a05b53a589e

[gaim-migrate @ 13914] Some bits'n'pieces: A bunch of memory leak fixes Fix newly created accounts to connect in the currently active global status Fix the modify account dialog to only show relevant user options etc. Update sametime to use some more of the new status stuff, it still needs more love though. Some s/online/available/ for consistency across prpls Fix a racyness in disconnecting connections that want to die (fixes the Yahoo crash when signing on somewhere else) Sorry if I caused any conflicts! committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Mon, 10 Oct 2005 17:59:48 +0000
parents c7305c2d650b
children bf6ba37db13b
comparison
equal deleted inserted replaced
11637:cedd48571c90 11638:3a05b53a589e
596 gaim_status_destroy(GaimStatus *status) 596 gaim_status_destroy(GaimStatus *status)
597 { 597 {
598 g_return_if_fail(status != NULL); 598 g_return_if_fail(status != NULL);
599 599
600 /* TODO: Don't do this is if the status is exclusive */ 600 /* TODO: Don't do this is if the status is exclusive */
601 gaim_status_set_active(status, FALSE); 601 /* XXX: why do this at all?
602 gaim_status_set_active(status, FALSE); */
602 603
603 g_hash_table_destroy(status->attr_values); 604 g_hash_table_destroy(status->attr_values);
604 605
605 GAIM_DBUS_UNREGISTER_POINTER(status); 606 GAIM_DBUS_UNREGISTER_POINTER(status);
606 g_free(status); 607 g_free(status);
1105 1106
1106 presence->context = context; 1107 presence->context = context;
1107 1108
1108 presence->status_table = 1109 presence->status_table =
1109 g_hash_table_new_full(g_str_hash, g_str_equal, 1110 g_hash_table_new_full(g_str_hash, g_str_equal,
1110 g_free, (GFreeFunc)gaim_status_destroy); 1111 g_free, NULL);
1111 1112
1112 return presence; 1113 return presence;
1113 } 1114 }
1114 1115
1115 GaimPresence * 1116 GaimPresence *
1201 { 1202 {
1202 if (presence->u.chat.user != NULL) 1203 if (presence->u.chat.user != NULL)
1203 g_free(presence->u.chat.user); 1204 g_free(presence->u.chat.user);
1204 } 1205 }
1205 1206
1206 if (presence->statuses != NULL) 1207 if (presence->statuses != NULL) {
1208 g_list_foreach(presence->statuses, (GFunc)gaim_status_destroy, NULL);
1207 g_list_free(presence->statuses); 1209 g_list_free(presence->statuses);
1210 }
1208 1211
1209 g_hash_table_destroy(presence->status_table); 1212 g_hash_table_destroy(presence->status_table);
1210 1213
1211 GAIM_DBUS_UNREGISTER_POINTER(presence); 1214 GAIM_DBUS_UNREGISTER_POINTER(presence);
1212 g_free(presence); 1215 g_free(presence);