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)