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
|