# HG changeset patch # User nenolod # Date 1180003273 25200 # Node ID febdfe7a482bafa4d993bc9b80da11f3cdbc3537 # Parent 7144a4e5e97844437f904db39b3cf2971cbc9034 [svn] - improve plugin2 loader's robustness (e.g. make it not crash) diff -r 7144a4e5e978 -r febdfe7a482b ChangeLog --- a/ChangeLog Thu May 24 03:37:54 2007 -0700 +++ b/ChangeLog Thu May 24 03:41:13 2007 -0700 @@ -1,3 +1,11 @@ +2007-05-24 10:37:54 +0000 William Pitcock + revision [4622] + - temporarily work around plugin API v1 retardation + + trunk/src/audacious/pluginenum.c | 1 + + 1 file changed, 1 insertion(+) + + 2007-05-24 10:27:54 +0000 William Pitcock revision [4620] - first attempt at an plugin API2 loader. this is entirely implemented inside the plugin2 namespace, so please respect that if you go editing this ;p diff -r 7144a4e5e978 -r febdfe7a482b src/audacious/build_stamp.c --- a/src/audacious/build_stamp.c Thu May 24 03:37:54 2007 -0700 +++ b/src/audacious/build_stamp.c Thu May 24 03:41:13 2007 -0700 @@ -1,2 +1,2 @@ #include -const gchar *svn_stamp = "20070524-4620"; +const gchar *svn_stamp = "20070524-4622"; diff -r 7144a4e5e978 -r febdfe7a482b src/audacious/pluginenum.c --- a/src/audacious/pluginenum.c Thu May 24 03:37:54 2007 -0700 +++ b/src/audacious/pluginenum.c Thu May 24 03:41:13 2007 -0700 @@ -229,35 +229,50 @@ header->priv_assoc->handle = module; header->priv_assoc->filename = g_strdup(filename); - for (ip_iter = header->ip_list; *ip_iter != NULL; ip_iter++) + if (header->ip_list) { - PLUGIN(*ip_iter)->filename = g_strdup(filename); - g_print("plugin2 '%s' provides InputPlugin <%p>", filename, *ip_iter); - input_plugin_init(PLUGIN(*ip_iter)); + for (ip_iter = header->ip_list; *ip_iter != NULL; ip_iter++) + { + PLUGIN(*ip_iter)->filename = g_strdup(filename); + g_print("plugin2 '%s' provides InputPlugin <%p>\n", filename, *ip_iter); + input_plugin_init(PLUGIN(*ip_iter)); + } } - for (op_iter = header->op_list; *op_iter != NULL; op_iter++) + if (header->op_list) { - g_print("plugin2 '%s' provides OutputPlugin <%p>", filename, *op_iter); - output_plugin_init(PLUGIN(*op_iter)); + for (op_iter = header->op_list; *op_iter != NULL; op_iter++) + { + g_print("plugin2 '%s' provides OutputPlugin <%p>\n", filename, *op_iter); + output_plugin_init(PLUGIN(*op_iter)); + } } - for (ep_iter = header->ep_list; *ep_iter != NULL; ep_iter++) + if (header->ep_list) { - g_print("plugin2 '%s' provides EffectPlugin <%p>", filename, *ep_iter); - effect_plugin_init(PLUGIN(*ep_iter)); + for (ep_iter = header->ep_list; *ep_iter != NULL; ep_iter++) + { + g_print("plugin2 '%s' provides EffectPlugin <%p>\n", filename, *ep_iter); + effect_plugin_init(PLUGIN(*ep_iter)); + } } - for (gp_iter = header->gp_list; *gp_iter != NULL; gp_iter++) + if (header->gp_list) { - g_print("plugin2 '%s' provides GeneralPlugin <%p>", filename, *gp_iter); - general_plugin_init(PLUGIN(*gp_iter)); + for (gp_iter = header->gp_list; *gp_iter != NULL; gp_iter++) + { + g_print("plugin2 '%s' provides GeneralPlugin <%p>\n", filename, *gp_iter); + general_plugin_init(PLUGIN(*gp_iter)); + } } - for (vp_iter = header->vp_list; *vp_iter != NULL; vp_iter++) + if (header->vp_list) { - g_print("plugin2 '%s' provides VisPlugin <%p>", filename, *vp_iter); - vis_plugin_init(PLUGIN(*vp_iter)); + for (vp_iter = header->vp_list; *vp_iter != NULL; vp_iter++) + { + g_print("plugin2 '%s' provides VisPlugin <%p>\n", filename, *vp_iter); + vis_plugin_init(PLUGIN(*vp_iter)); + } } }