Mercurial > audlegacy
changeset 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 | ba9eb9cc287f |
| children | 3ba4537c53b5 |
| files | src/audacious/pluginenum.c |
| diffstat | 1 files changed, 16 insertions(+), 15 deletions(-) [+] |
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])); } }
