Lines Matching refs:ma

59 	module_addon * ma;	// current module addon looked up
76 static status_t unload_module_addon(module_addon * ma);
214 mlc->ma = NULL;
242 if (mlc->ma && mlc->mi) {
257 atomic_add(&mlc->ma->ref_count, -1);
258 unload_module_addon(mlc->ma);
259 mlc->ma = NULL;
316 mlc->ma = load_module_addon(path.Path());
317 if (!mlc->ma)
322 atomic_add(&mlc->ma->ref_count, 1);
325 mlc->mi = mlc->ma->infos;
355 if (mlc->ma) {
356 atomic_add(&mlc->ma->ref_count, -1);
357 unload_module_addon(mlc->ma);
425 module_addon * ma;
440 ma = NULL;
449 ma = (module_addon *) malloc(sizeof(*ma));
450 if (!ma)
456 ma->ref_count = 0;
457 ma->keep_loaded = false;
458 ma->path = strdup(path);
459 ma->addon_image = addon_id;
460 ma->infos = mi;
474 m->addon = ma;
486 ma->next = g_module_addons;
487 g_module_addons = ma;
491 return ma;
496 if (ma) {
504 if (m->addon == ma) {
527 if (ma->path)
528 free(ma->path);
529 free(ma);
537 static status_t unload_module_addon(module_addon * ma)
543 if (!ma)
547 if (ma->keep_loaded) {
549 ma->path);
553 if (ma->ref_count)
557 if (ma->addon_image < 0)
561 status = unload_add_on(ma->addon_image);
563 printf("Failed to unload %s addon: %s.\n", ma->path, strerror(status));
566 // printf("Addon %s unloaded.\n", ma->path);
574 if (m->addon == ma) {
595 if (g_module_addons == ma)
596 g_module_addons = ma->next;
600 while (tmp && tmp->next != ma)
604 tmp->next = ma->next;
607 if (ma->path)
608 free(ma->path);
609 free(ma);
661 module_addon * ma;
664 ma = load_module_addon(path.Path());
665 if (ma) {
670 unload_module_addon(ma);
671 }; // if (ma)