From: dforsi <df...@us...> - 2012-07-14 15:44:52
|
commit da1576970b2137d35e1e30679e8681b7874a0e21 Author: Daniele Forsi <da...@fo...> Date: Sat Jul 14 16:26:40 2012 +0200 Fix adding more sort tabs Do not store a pointer to a local variable on the caller's stack. In the following backtrace by chance the same memory area was reused by another filename. Fixes: ** (lt-gtkpod:15891): ERROR **: Failed to create builder from file /home/daniele/gtkpod/gtkpod/plugins/libtrack_display.so: Errore alla riga 1 carattere 1: Il documento deve iniziare con un elemento (es. <book>) Program received signal SIGTRAP, Trace/breakpoint trap. 0xb74a8f81 in g_logv () from /lib/i386-linux-gnu/libglib-2.0.so.0 (gdb) bt #0 0xb74a8f81 in g_logv () from /lib/i386-linux-gnu/libglib-2.0.so.0 #1 0xb74a90c3 in g_log () from /lib/i386-linux-gnu/libglib-2.0.so.0 #2 0xb7fc112d in gtkpod_builder_xml_new (filepath=filepath@entry=0x841b550 "/home/daniele/gtkpod/gtkpod/plugins/libtrack_display.so") at misc.c:1210 #3 0xaf1bab3b in special_sort_tab_page_new (st_widget_parent=st_widget_parent@entry=0x840e3a8, glade_file_path=0x841b550 "/home/daniele/gtkpod/gtkpod/plugins/libtrack_display.so") at special_sorttab_page.c:505 #4 0xaf1be18f in _sort_tab_widget_init_page (st_cat=ST_CAT_SPECIAL, self=0x840e3a8) at sorttab_widget.c:227 #5 sort_tab_widget_new (inst=inst@entry=2, parent=0x8af0710, glade_xml_path=0x841b550 "/home/daniele/gtkpod/gtkpod/plugins/libtrack_display.so") at sorttab_widget.c:336 #6 0xaf1bf8bf in sorttab_display_append_widget () at display_sorttabs.c:145 #7 0xaf1bffa0 in sorttab_display_preference_changed_cb (app=app@entry=0x838f008, pfname=0xaf1c4955, value=0x3, data=0x0) at display_sorttabs.c:354 plugins/sorttab_display/sorttab_widget.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) --- diff --git a/plugins/sorttab_display/sorttab_widget.c b/plugins/sorttab_display/sorttab_widget.c index 8a74ac6..d076946 100644 --- a/plugins/sorttab_display/sorttab_widget.c +++ b/plugins/sorttab_display/sorttab_widget.c @@ -92,6 +92,8 @@ static void _sort_tab_widget_dispose(GObject *gobject) { priv->prev = NULL; priv->model = NULL; priv->parent = NULL; + g_free(priv->glade_xml_path); + priv->glade_xml_path = NULL; } /* call the parent class' dispose() method */ @@ -325,7 +327,7 @@ SortTabWidget *sort_tab_widget_new(gint inst, GtkWidget *parent, gchar *glade_xm priv->parent = parent; priv->instance = inst; - priv->glade_xml_path = glade_xml_path; + priv->glade_xml_path = g_strdup(glade_xml_path); /* * Initialise the notebook pages. This has to be done here rather than |