From: Andrea <mar...@go...> - 2008-07-15 22:00:29
|
Andrea wrote: > This is what valgrind outputs on step 3) > > ** (gtkpod:10112): CRITICAL **: pm_get_iter_for_playlist: assertion `pl' failed > ==10112== This is the GUI accessing the deleted playlist > ==10112== Invalid read of size 4 > ==10112== at 0x8070CF5: pm_set_playlist_renderer_pix (display_playlists.c:2054) > ==10112== by 0x8070F1E: pm_cell_data_func_pix (display_playlists.c:2177) > ==10112== by 0x44201A41: gtk_tree_view_column_cell_set_cell_data (in > /usr/lib/libgtk-x11-2.0.so.0.1200.11) > ==10112== by 0x441E2DA3: (within /usr/lib/libgtk-x11-2.0.so.0.1200.11) > ==10112== by 0x441E4F62: (within /usr/lib/libgtk-x11-2.0.so.0.1200.11) > ==10112== by 0x440A83F5: (within /usr/lib/libgtk-x11-2.0.so.0.1200.11) > ==10112== by 0x413398A8: (within /lib/libgobject-2.0.so.0.1600.4) > ==10112== by 0x4133B12A: g_closure_invoke (in /lib/libgobject-2.0.so.0.1600.4) > ==10112== by 0x4134F63C: (within /lib/libgobject-2.0.so.0.1600.4) > ==10112== by 0x41350D57: g_signal_emit_valist (in /lib/libgobject-2.0.so.0.1600.4) > ==10112== by 0x41351335: g_signal_emit (in /lib/libgobject-2.0.so.0.1600.4) > ==10112== by 0x44219D83: (within /usr/lib/libgtk-x11-2.0.so.0.1200.11) This is where libgpod has deleted the playlist > ==10112== Address 0x8db8fb0 is 0 bytes inside a block of size 152 free'd > ==10112== at 0x400590A: free (vg_replace_malloc.c:323) > ==10112== by 0x41286395: g_free (in /lib/libglib-2.0.so.0.1600.4) > ==10112== by 0x405EE29: itdb_playlist_free (itdb_playlist.c:1276) > ==10112== by 0x405F157: itdb_playlist_remove (itdb_playlist.c:1366) > ==10112== by 0x80A0DF6: delete_playlist_head (misc_confirm.c:603) > ==10112== by 0x413488B3: g_cclosure_marshal_VOID__VOID (in /lib/libgobject-2.0.so.0.1600.4) > ==10112== by 0x4133B12A: g_closure_invoke (in /lib/libgobject-2.0.so.0.1600.4) > ==10112== by 0x4134F994: (within /lib/libgobject-2.0.so.0.1600.4) > ==10112== by 0x41350ECD: g_signal_emit_valist (in /lib/libgobject-2.0.so.0.1600.4) > ==10112== by 0x41351335: g_signal_emit (in /lib/libgobject-2.0.so.0.1600.4) > ==10112== by 0x44219E97: gtk_widget_activate (in /usr/lib/libgtk-x11-2.0.so.0.1200.11) > ==10112== by 0x440BEEC4: gtk_menu_shell_activate_item (in /usr/lib/libgtk-x11-2.0.so.0.1200.11) I think something happens after libgpod has deleted the playlist, while gtkpod updates the GUI. Somewhere in misc_conversion.c at the end of the function static void delete_playlist_ok (struct DeleteData *dd) It seems the GUI does not know the playlist has been removed. One more thing: if the playlist to delete is the last element of an iPod, it fails. if the playlist is not at the end (e.g. before Photos) it works well. Hope someone can figure it out. Andrea |