summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2017-01-30 11:29:44 +0100
committerCarlos Garnacho <carlosg@gnome.org>2017-01-30 11:49:47 +0100
commit53d6c99c4a1ec646c2c569427c710b37636fd7df (patch)
treeb1ee85d92d5731c253b4f4dafaf9c5983ce3e615
parent8c78579f201124265a96b22d5462f35b9570c0b6 (diff)
downloadtracker-53d6c99c4a1ec646c2c569427c710b37636fd7df.tar.gz
libtracker-extract: Remove initialize arg from load_module()
It's now TRUE from all call points, so just make it happen by default.
-rw-r--r--src/libtracker-extract/tracker-module-manager.c42
1 files changed, 16 insertions, 26 deletions
diff --git a/src/libtracker-extract/tracker-module-manager.c b/src/libtracker-extract/tracker-module-manager.c
index c84467484..b3803fe3f 100644
--- a/src/libtracker-extract/tracker-module-manager.c
+++ b/src/libtracker-extract/tracker-module-manager.c
@@ -38,13 +38,12 @@ typedef struct {
TrackerExtractMetadataFunc extract_func;
TrackerExtractInitFunc init_func;
TrackerExtractShutdownFunc shutdown_func;
- guint initialized : 1;
} ModuleInfo;
static gboolean dummy_extract_func (TrackerExtractInfo *info);
static ModuleInfo dummy_module = {
- NULL, dummy_extract_func, NULL, NULL, TRUE
+ NULL, dummy_extract_func, NULL, NULL
};
static GHashTable *modules = NULL;
@@ -316,8 +315,7 @@ tracker_extract_module_manager_get_fallback_rdf_types (const gchar *mimetype)
}
static ModuleInfo *
-load_module (RuleInfo *info,
- gboolean initialize)
+load_module (RuleInfo *info)
{
ModuleInfo *module_info = NULL;
@@ -331,6 +329,7 @@ load_module (RuleInfo *info,
if (!module_info) {
GModule *module;
+ GError *init_error = NULL;
/* Load the module */
module = g_module_open (info->module_path, G_MODULE_BIND_LOCAL);
@@ -357,6 +356,17 @@ load_module (RuleInfo *info,
g_module_symbol (module, INIT_FUNCTION, (gpointer *) &module_info->init_func);
g_module_symbol (module, SHUTDOWN_FUNCTION, (gpointer *) &module_info->shutdown_func);
+ if (module_info->init_func &&
+ !(module_info->init_func) (&init_error)) {
+ g_critical ("Could not initialize module %s: %s",
+ g_module_name (module_info->module),
+ (init_error) ? init_error->message : "No error given");
+
+ g_clear_error (&init_error);
+ g_slice_free (ModuleInfo, module_info);
+ return NULL;
+ }
+
/* Add it to the cache */
if (G_UNLIKELY (!modules)) {
/* Key is an intern string, so
@@ -368,26 +378,6 @@ load_module (RuleInfo *info,
g_hash_table_insert (modules, (gpointer) info->module_path, module_info);
}
- if (initialize && !module_info->initialized) {
- if (module_info->init_func) {
- GError *error = NULL;
-
- if (!(module_info->init_func) (&error)) {
- g_critical ("Could not initialize module %s: %s",
- g_module_name (module_info->module),
- (error) ? error->message : "No error given");
-
- if (error) {
- g_error_free (error);
- }
-
- return NULL;
- }
- }
-
- module_info->initialized = TRUE;
- }
-
return module_info;
}
@@ -398,7 +388,7 @@ initialize_first_module (TrackerMimetypeInfo *info)
/* Actually iterates through the list loaded + initialized module */
while (info->cur && !module_info) {
- module_info = load_module (info->cur->data, TRUE);
+ module_info = load_module (info->cur->data);
if (!module_info) {
info->cur = info->cur->next;
@@ -524,6 +514,6 @@ tracker_module_manager_load_modules (void)
for (i = 0; i < rules->len; i++) {
rule_info = &g_array_index (rules, RuleInfo, i);
- load_module (rule_info, TRUE);
+ load_module (rule_info);
}
}