Memleak fixes

View: New views
2 Messages — Rating Filter:   Alert me  

Memleak fixes

by Jordi Mallach-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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@...     jordi@...     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@...>
+
+ * 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@...>
 
  * 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));


_______________________________________________
gnome-mud-list mailing list
gnome-mud-list@...
http://mail.gnome.org/mailman/listinfo/gnome-mud-list

signature.asc (196 bytes) Download Attachment

Re: Memleak fixes

by Robin Ericsson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 24 aug 2006, at 00.54, Jordi Mallach wrote:

> 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 :)
>

Seems ok to me as long as the client still works, but what do I know  
nowadays :)


regards,
        Robin
_______________________________________________
gnome-mud-list mailing list
gnome-mud-list@...
http://mail.gnome.org/mailman/listinfo/gnome-mud-list
LightInTheBox - Buy quality products at wholesale price!