static void gegl_module_db_module_initialize (const GeglDatafileData *file_data, gpointer user_data) { GeglModuleDB *db = GEGL_MODULE_DB (user_data); GeglModule *module; gboolean load_inhibit; if (! valid_module_name (file_data->filename)) return; /* don't load if we already know about it */ if (gegl_module_db_module_find_by_path (db, file_data->filename)) return; load_inhibit = is_in_inhibit_list (file_data->filename, db->load_inhibit); module = gegl_module_new (file_data->filename, load_inhibit, db->verbose); g_signal_connect (module, "modified", G_CALLBACK (gegl_module_db_module_modified), db); db->modules = g_list_append (db->modules, module); g_signal_emit (db, db_signals[ADD], 0, module); }
static void gegl_module_db_finalize (GObject *object) { GeglModuleDB *db = GEGL_MODULE_DB (object); g_list_free (db->modules); g_free (db->load_inhibit); G_OBJECT_CLASS (parent_class)->finalize (object); }