static void caja_module_finalize (GObject *object) { CajaModule *module; module = CAJA_MODULE (object); g_free (module->path); EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); }
static void caja_module_unload (GTypeModule *gmodule) { CajaModule *module; module = CAJA_MODULE (gmodule); module->shutdown (); g_module_close (module->library); module->initialize = NULL; module->shutdown = NULL; module->list_types = NULL; }
static gboolean caja_module_load (GTypeModule *gmodule) { CajaModule *module; module = CAJA_MODULE (gmodule); module->library = g_module_open (module->path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); if (!module->library) { g_warning ("%s", g_module_error ()); return FALSE; } if (!g_module_symbol (module->library, "caja_module_initialize", (gpointer *)&module->initialize) || !g_module_symbol (module->library, "caja_module_shutdown", (gpointer *)&module->shutdown) || !g_module_symbol (module->library, "caja_module_list_types", (gpointer *)&module->list_types)) { g_warning ("%s", g_module_error ()); g_module_close (module->library); return FALSE; } g_module_symbol (module->library, "caja_module_list_pyfiles", (gpointer *)&module->list_pyfiles); module->initialize (gmodule); return TRUE; }