Mercurial > audlegacy
diff src/audacious/pluginenum.c @ 4768:d470630b8cea
The famed "multiple plugins in one module" feature didn't actually work,
because structure indices were being indexed by same variable (which was
never reset for different plugin structs.) Fixed.
| author | Matti Hamalainen <ccr@tnsp.org> |
|---|---|
| date | Wed, 13 Aug 2008 21:33:54 +0300 |
| parents | f084f639e962 |
| children | c2dc7a3a7240 |
line wrap: on
line diff
--- a/src/audacious/pluginenum.c Wed Aug 13 00:06:24 2008 +0300 +++ b/src/audacious/pluginenum.c Wed Aug 13 21:33:54 2008 +0300 @@ -654,7 +654,7 @@ void plugin2_process(PluginHeader *header, GModule *module, const gchar *filename) { - int i; + gint i, n; mowgli_node_t *hlist_node; if (header->magic != PLUGIN_MAGIC) @@ -674,58 +674,59 @@ header->priv_assoc->handle = module; header->priv_assoc->filename = g_strdup(filename); - i = 0; - + n = 0; + if (header->ip_list) { - for (; (header->ip_list)[i] != NULL; i++) + for (i = 0; (header->ip_list)[i] != NULL; i++, n++) { - PLUGIN((header->ip_list)[i])->filename = g_strdup_printf("%s (#%d)", filename, i); + PLUGIN((header->ip_list)[i])->filename = g_strdup_printf("%s (#%d)", filename, n); input_plugin_init(PLUGIN((header->ip_list)[i])); } } if (header->op_list) { - for (; (header->op_list)[i] != NULL; i++) + for (i = 0; (header->op_list)[i] != NULL; i++, n++) { - PLUGIN((header->op_list)[i])->filename = g_strdup_printf("%s (#%d)", filename, i); + PLUGIN((header->op_list)[i])->filename = g_strdup_printf("%s (#%d)", filename, n); output_plugin_init(PLUGIN((header->op_list)[i])); } } if (header->ep_list) { - for (; (header->ep_list)[i] != NULL; i++) + for (i = 0; (header->ep_list)[i] != NULL; i++, n++) { - PLUGIN((header->ep_list)[i])->filename = g_strdup_printf("%s (#%d)", filename, i); + PLUGIN((header->ep_list)[i])->filename = g_strdup_printf("%s (#%d)", filename, n); effect_plugin_init(PLUGIN((header->ep_list)[i])); } } + if (header->gp_list) { - for (; (header->gp_list)[i] != NULL; i++) + for (i = 0; (header->gp_list)[i] != NULL; i++, n++) { - PLUGIN((header->gp_list)[i])->filename = g_strdup_printf("%s (#%d)", filename, i); + PLUGIN((header->gp_list)[i])->filename = g_strdup_printf("%s (#%d)", filename, n); general_plugin_init(PLUGIN((header->gp_list)[i])); } } if (header->vp_list) { - for (; (header->vp_list)[i] != NULL; i++) + for (i = 0; (header->vp_list)[i] != NULL; i++, n++) { - PLUGIN((header->vp_list)[i])->filename = g_strdup_printf("%s (#%d)", filename, i); + PLUGIN((header->vp_list)[i])->filename = g_strdup_printf("%s (#%d)", filename, n); vis_plugin_init(PLUGIN((header->vp_list)[i])); } } if (header->dp_list) { - for (; (header->dp_list)[i] != NULL; i++) + for (i = 0; (header->dp_list)[i] != NULL; i++, n++) { - PLUGIN((header->dp_list)[i])->filename = g_strdup_printf("%s (#%d)", filename, i); + PLUGIN((header->dp_list)[i])->filename = g_strdup_printf("%s (#%d)", filename, n); discovery_plugin_init(PLUGIN((header->dp_list)[i])); } }
