Mercurial > audlegacy
comparison src/audacious/pluginenum.c @ 2799:febdfe7a482b trunk
[svn] - improve plugin2 loader's robustness (e.g. make it not crash)
| author | nenolod |
|---|---|
| date | Thu, 24 May 2007 03:41:13 -0700 |
| parents | 7144a4e5e978 |
| children | 8ab12f092722 |
comparison
equal
deleted
inserted
replaced
| 2798:7144a4e5e978 | 2799:febdfe7a482b |
|---|---|
| 227 | 227 |
| 228 header->priv_assoc = g_new0(Plugin, 1); | 228 header->priv_assoc = g_new0(Plugin, 1); |
| 229 header->priv_assoc->handle = module; | 229 header->priv_assoc->handle = module; |
| 230 header->priv_assoc->filename = g_strdup(filename); | 230 header->priv_assoc->filename = g_strdup(filename); |
| 231 | 231 |
| 232 for (ip_iter = header->ip_list; *ip_iter != NULL; ip_iter++) | 232 if (header->ip_list) |
| 233 { | 233 { |
| 234 PLUGIN(*ip_iter)->filename = g_strdup(filename); | 234 for (ip_iter = header->ip_list; *ip_iter != NULL; ip_iter++) |
| 235 g_print("plugin2 '%s' provides InputPlugin <%p>", filename, *ip_iter); | 235 { |
| 236 input_plugin_init(PLUGIN(*ip_iter)); | 236 PLUGIN(*ip_iter)->filename = g_strdup(filename); |
| 237 } | 237 g_print("plugin2 '%s' provides InputPlugin <%p>\n", filename, *ip_iter); |
| 238 | 238 input_plugin_init(PLUGIN(*ip_iter)); |
| 239 for (op_iter = header->op_list; *op_iter != NULL; op_iter++) | 239 } |
| 240 { | 240 } |
| 241 g_print("plugin2 '%s' provides OutputPlugin <%p>", filename, *op_iter); | 241 |
| 242 output_plugin_init(PLUGIN(*op_iter)); | 242 if (header->op_list) |
| 243 } | 243 { |
| 244 | 244 for (op_iter = header->op_list; *op_iter != NULL; op_iter++) |
| 245 for (ep_iter = header->ep_list; *ep_iter != NULL; ep_iter++) | 245 { |
| 246 { | 246 g_print("plugin2 '%s' provides OutputPlugin <%p>\n", filename, *op_iter); |
| 247 g_print("plugin2 '%s' provides EffectPlugin <%p>", filename, *ep_iter); | 247 output_plugin_init(PLUGIN(*op_iter)); |
| 248 effect_plugin_init(PLUGIN(*ep_iter)); | 248 } |
| 249 } | 249 } |
| 250 | 250 |
| 251 for (gp_iter = header->gp_list; *gp_iter != NULL; gp_iter++) | 251 if (header->ep_list) |
| 252 { | 252 { |
| 253 g_print("plugin2 '%s' provides GeneralPlugin <%p>", filename, *gp_iter); | 253 for (ep_iter = header->ep_list; *ep_iter != NULL; ep_iter++) |
| 254 general_plugin_init(PLUGIN(*gp_iter)); | 254 { |
| 255 } | 255 g_print("plugin2 '%s' provides EffectPlugin <%p>\n", filename, *ep_iter); |
| 256 | 256 effect_plugin_init(PLUGIN(*ep_iter)); |
| 257 for (vp_iter = header->vp_list; *vp_iter != NULL; vp_iter++) | 257 } |
| 258 { | 258 } |
| 259 g_print("plugin2 '%s' provides VisPlugin <%p>", filename, *vp_iter); | 259 |
| 260 vis_plugin_init(PLUGIN(*vp_iter)); | 260 if (header->gp_list) |
| 261 { | |
| 262 for (gp_iter = header->gp_list; *gp_iter != NULL; gp_iter++) | |
| 263 { | |
| 264 g_print("plugin2 '%s' provides GeneralPlugin <%p>\n", filename, *gp_iter); | |
| 265 general_plugin_init(PLUGIN(*gp_iter)); | |
| 266 } | |
| 267 } | |
| 268 | |
| 269 if (header->vp_list) | |
| 270 { | |
| 271 for (vp_iter = header->vp_list; *vp_iter != NULL; vp_iter++) | |
| 272 { | |
| 273 g_print("plugin2 '%s' provides VisPlugin <%p>\n", filename, *vp_iter); | |
| 274 vis_plugin_init(PLUGIN(*vp_iter)); | |
| 275 } | |
| 261 } | 276 } |
| 262 } | 277 } |
| 263 | 278 |
| 264 void | 279 void |
| 265 plugin2_unload(PluginHeader *header) | 280 plugin2_unload(PluginHeader *header) |
