kmaraas pointed me at a few necessary fixes on IRC. Can anyone review this probably fucked up patch and tell me if it's ok? If there's more to plug, please do :) Les: where are you! Jordi -- Jordi Mallach Pérez -- Debian developer http://www.debian.org/ jordi sindominio net jordi debian org http://www.sindominio.net/ GnuPG public key information available at http://oskuro.net/
? debian ? gar.patch ? leakpatch ? pluginmake.patch ? plugins/automapper/Makefile.am ? plugins/outputwindows/Makefile.am ? plugins/statusbars/Makefile.am ? po/stamp-it Index: ChangeLog =================================================================== RCS file: /cvs/gnome/gnome-mud/ChangeLog,v retrieving revision 1.382 diff -u -p -r1.382 ChangeLog --- ChangeLog 8 Jun 2006 18:30:25 -0000 1.382 +++ ChangeLog 23 Aug 2006 22:51:08 -0000 @@ -1,3 +1,14 @@ +2006-08-24 Jordi Mallach <jordi sindominio net> + + * src/mud-preferences-window.c, src/mud-window-mudedit.c, + src/mud-window-mudlist.c: don't wrap gconf_client_get_string() + calls around g_strdup(), as it leaks the string and + gconf_client_get_string() already does the right thing. + * src/mud-parse-alias.c, src/mud-parse-alias.c, + mud-preferences-window.c, mud-window-mudlist.c: Plug memleaks. + + Thanks to Kjartan Maraas for the pointers. + 2006-06-08 Jordi Mallach <jordi sindominio net> * plugins/automapper/map.c, ui/prefs.glade, Index: src/mud-parse-alias.c =================================================================== RCS file: /cvs/gnome/gnome-mud/src/mud-parse-alias.c,v retrieving revision 1.1 diff -u -p -r1.1 mud-parse-alias.c --- src/mud-parse-alias.c 15 May 2006 12:55:32 -0000 1.1 +++ src/mud-parse-alias.c 23 Aug 2006 22:51:09 -0000 @@ -139,6 +139,7 @@ mud_parse_alias_do(gchar *data, MudConne } } + g_free(aliases); return send_line; } Index: src/mud-parse-trigger.c =================================================================== RCS file: /cvs/gnome/gnome-mud/src/mud-parse-trigger.c,v retrieving revision 1.1 diff -u -p -r1.1 mud-parse-trigger.c --- src/mud-parse-trigger.c 15 May 2006 12:55:32 -0000 1.1 +++ src/mud-parse-trigger.c 23 Aug 2006 22:51:09 -0000 @@ -158,6 +158,7 @@ mud_parse_trigger_do(gchar *data, MudCon } } + g_free(triggers); return doGag; } Index: src/mud-preferences-window.c =================================================================== RCS file: /cvs/gnome/gnome-mud/src/mud-preferences-window.c,v retrieving revision 1.11 diff -u -p -r1.11 mud-preferences-window.c --- src/mud-preferences-window.c 15 May 2006 12:55:32 -0000 1.11 +++ src/mud-preferences-window.c 23 Aug 2006 22:51:11 -0000 @@ -607,7 +607,7 @@ mud_preferences_window_trigger_select_cb gtk_entry_set_text(GTK_ENTRY(prefs->priv->trigger_name_entry),gconf_client_get_string(client, keyname, &error)); g_snprintf(keyname, 2048, "/apps/gnome-mud/profiles/%s/triggers/%s/regex", profile_name, prefs->priv->trigger_info.text); - regex = g_strdup(gconf_client_get_string(client, keyname, &error)); + regex = gconf_client_get_string(client, keyname, &error); if(regex) { @@ -616,7 +616,7 @@ mud_preferences_window_trigger_select_cb } g_snprintf(keyname, 2048, "/apps/gnome-mud/profiles/%s/triggers/%s/actions", profile_name, prefs->priv->trigger_info.text); - actions = g_strdup(gconf_client_get_string(client, keyname, &error)); + actions = gconf_client_get_string(client, keyname, &error); if(actions) { @@ -663,7 +663,7 @@ mud_preferences_window_alias_select_cb(G gtk_entry_set_text(GTK_ENTRY(prefs->priv->alias_entry),gconf_client_get_string(client, keyname, &error)); g_snprintf(keyname, 2048, "/apps/gnome-mud/profiles/%s/aliases/%s/actions", profile_name, prefs->priv->alias_info.text); - actions = g_strdup(gconf_client_get_string(client, keyname, &error)); + actions = gconf_client_get_string(client, keyname, &error); if(actions) { @@ -672,7 +672,7 @@ mud_preferences_window_alias_select_cb(G } g_snprintf(keyname, 2048, "/apps/gnome-mud/profiles/%s/aliases/%s/regex", profile_name, prefs->priv->alias_info.text); - regex = g_strdup(gconf_client_get_string(client, keyname, &error)); + regex = gconf_client_get_string(client, keyname, &error); if(regex) { @@ -1148,6 +1148,8 @@ mud_preferences_window_alias_del_cb(GtkW gconf_client_set_list(client, keyname, GCONF_VALUE_STRING, aliases, &error); mud_preferences_window_populate_alias_treeview(window); + + g_free(aliases); } static void Index: src/mud-window-mudedit.c =================================================================== RCS file: /cvs/gnome/gnome-mud/src/mud-window-mudedit.c,v retrieving revision 1.8 diff -u -p -r1.8 mud-window-mudedit.c --- src/mud-window-mudedit.c 15 May 2006 12:55:32 -0000 1.8 +++ src/mud-window-mudedit.c 23 Aug 2006 22:51:11 -0000 @@ -222,7 +222,7 @@ mud_edit_window_query_gconf(MudEditWindo gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mudedit->priv->btnShowToggle),gconf_client_get_int(client, keyname, &error)); g_snprintf(keyname, 2048, "/apps/gnome-mud/muds/%s/desc", mudedit->priv->mud); - desc = g_strdup(gconf_client_get_string(client, keyname, &error)); + desc = gconf_client_get_string(client, keyname, &error); if(desc) { @@ -332,7 +332,7 @@ props_window_dialog(gchar *charname, Mud gtk_entry_set_text(GTK_ENTRY(name), charname); g_snprintf(keyname, 2048, "/apps/gnome-mud/muds/%s/chars/%s/connect", mudname, charname); - connect = g_strdup(gconf_client_get_string(client, keyname, &error)); + connect = gconf_client_get_string(client, keyname, &error); if(connect) { gtk_text_buffer_set_text(buffer, connect, strlen(connect)); @@ -507,7 +507,7 @@ mud_edit_window_ok_cb(GtkWidget *widget, g_free(mudedit->priv->mud); mudedit->priv->mud = g_strdup(name); - // This seems to do nothing. WTF. -lh + /* FIXME This seems to do nothing. WTF. -lh */ gconf_client_remove_dir(client, keyname, &error); } Index: src/mud-window-mudlist.c =================================================================== RCS file: /cvs/gnome/gnome-mud/src/mud-window-mudlist.c,v retrieving revision 1.5 diff -u -p -r1.5 mud-window-mudlist.c --- src/mud-window-mudlist.c 15 May 2006 12:55:32 -0000 1.5 +++ src/mud-window-mudlist.c 23 Aug 2006 22:51:11 -0000 @@ -211,6 +211,7 @@ mud_list_window_populate_treeview(MudLis gtk_tree_store_set(store, &iter, NAME_COLUMN, gconf_client_get_string(client, keyname, &error), -1); g_free(mname); } + g_free(muds); } // Mudlist Callbacks @@ -298,7 +299,7 @@ mud_list_window_tree_select_cb(GtkTreeSe g_snprintf(keyname, 2048, "/apps/gnome-mud/muds/%s/desc", remove_whitespace(mudlist->priv->CurrSelRowText)); - desc = g_strdup(gconf_client_get_string(client, keyname, &error)); + desc = gconf_client_get_string(client, keyname, &error); if(desc) { gtk_text_buffer_set_text(buffer, desc, strlen(desc));
Attachment:
signature.asc
Description: Digital signature