diff src/view_dir.c @ 1413:3bc4967aaa57

Use dynamic allocation for editor key passed to various callbacks.
author zas_
date Wed, 11 Mar 2009 17:38:20 +0000
parents 5a534e1501e1
children cf4029d10d38
line wrap: on
line diff
--- a/src/view_dir.c	Tue Mar 10 22:52:12 2009 +0000
+++ b/src/view_dir.c	Wed Mar 11 17:38:20 2009 +0000
@@ -330,7 +330,10 @@
 	file_util_start_filter_from_filelist(key, list, path, vd->widget);
 }
 
-
+static void vd_drop_menu_edit_item_free(gpointer data)
+{
+	g_free(data);
+}
 
 GtkWidget *vd_drop_menu(ViewDir *vd, gint active)
 {
@@ -350,12 +353,13 @@
 		{
 		GtkWidget *item;
 		const EditorDescription *editor = work->data;
+		gchar *key;
 		work = work->next;
 		
 		if (!editor_is_filter(editor->key)) continue;
+		key = g_strdup(editor->key);
 		item = menu_item_add_sensitive(menu, editor->name, active, G_CALLBACK(vd_drop_menu_filter_cb), vd);
-
-		g_object_set_data(G_OBJECT(item), "filter_key", editor->key);
+		g_object_set_data_full(G_OBJECT(item), "filter_key", key, vd_drop_menu_edit_item_free);
 		}
 	
 	g_list_free(editors_list);