diff options
author | 2011-04-14 21:41:49 +0200 | |
---|---|---|
committer | 2011-04-14 21:41:49 +0200 | |
commit | cfe3109ac2c3c5a23c660d6e622b68420de83e91 (patch) | |
tree | ce9947b6b2aab8bd7f07a267fd70bc431fe982b0 | |
parent | 6a323590965cd38ad1d2ef47bad99740613211ce (diff) |
fixed invalid utf8/memtrashing in gtkui fileadd progress dialog
-rw-r--r-- | plugins/gtkui/gtkui.c | 12 |
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; } |