summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2011-04-14 21:41:49 +0200
committerGravatar waker <wakeroid@gmail.com>2011-04-14 21:41:49 +0200
commitcfe3109ac2c3c5a23c660d6e622b68420de83e91 (patch)
treece9947b6b2aab8bd7f07a267fd70bc431fe982b0
parent6a323590965cd38ad1d2ef47bad99740613211ce (diff)
fixed invalid utf8/memtrashing in gtkui fileadd progress dialog
-rw-r--r--plugins/gtkui/gtkui.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/plugins/gtkui/gtkui.c b/plugins/gtkui/gtkui.c
index 66658c95..6811b6b4 100644
--- a/plugins/gtkui/gtkui.c
+++ b/plugins/gtkui/gtkui.c
@@ -1092,8 +1092,11 @@ gtkui_progress_show_idle (gpointer data) {
gboolean
gtkui_set_progress_text_idle (gpointer data) {
- const char *text = (const char *)data;
- progress_settext (text);
+ char *text = (char *)data;
+ if (text) {
+ progress_settext (text);
+ free (text);
+ }
return FALSE;
}
@@ -1109,7 +1112,10 @@ gtkui_add_file_info_cb (DB_playItem_t *it, void *data) {
if (progress_is_aborted ()) {
return -1;
}
- g_idle_add (gtkui_set_progress_text_idle, (gpointer)deadbeef->pl_find_meta (it, ":URI"));
+ deadbeef->pl_lock ();
+ const char *fname = deadbeef->pl_find_meta (it, ":URI");
+ g_idle_add (gtkui_set_progress_text_idle, (gpointer)strdup(fname)); // slowwwww
+ deadbeef->pl_unlock ();
return 0;
}