This is due to a mismatch between the signal definition and the signal arguments passed by rhythmbox:
rhythmbox-0.11.5/shell/rb-playlist-manager.c:
playlist_load_ended_cb (TotemPlParser *parser, const char *uri, GHashTable *metadata, RBPlaylistManager *mgr)
... g_signal_connect_object (parser, "playlist-ended",
G_CALLBACK (playlist_load_ended_cb),
mgr, 0);
totem-pl-parser-2.22.3/plparse/totem-pl-parser.c:
totem_pl_parser_table_signals[PLAYLIST_ENDED] =
g_signal_new ("playlist-ended",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (TotemPlParserClass, playlist_ended),
NULL, NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
"metadata" is not valid, and will crash when opening _any_ playlist.
This is due to a mismatch between the signal definition and the signal arguments passed by rhythmbox:
rhythmbox- 0.11.5/ shell/rb- playlist- manager. c:
playlist_ load_ended_ cb (TotemPlParser *parser, const char *uri, GHashTable *metadata, RBPlaylistManager *mgr)
...
g_signal_ connect_ object (parser, "playlist-ended",
totem-pl- parser- 2.22.3/ plparse/ totem-pl- parser. c:
"metadata" is not valid, and will crash when opening _any_ playlist.