summaryrefslogtreecommitdiff
path: root/gtk/queryimmodules.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/queryimmodules.c')
-rw-r--r--gtk/queryimmodules.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/gtk/queryimmodules.c b/gtk/queryimmodules.c
index 6b87002e33..5369c7f9bd 100644
--- a/gtk/queryimmodules.c
+++ b/gtk/queryimmodules.c
@@ -94,6 +94,11 @@ query_module (const char *dir, const char *name)
void (*exit) (void);
GtkIMContext *(*create) (const gchar *context_id);
+ gpointer list_ptr;
+ gpointer init_ptr;
+ gpointer exit_ptr;
+ gpointer create_ptr;
+
GModule *module;
gchar *path;
gboolean error = FALSE;
@@ -112,15 +117,20 @@ query_module (const char *dir, const char *name)
}
if (module &&
- g_module_symbol (module, "im_module_list", (gpointer *) &list) &&
- g_module_symbol (module, "im_module_init", (gpointer *) &init) &&
- g_module_symbol (module, "im_module_exit", (gpointer *) &exit) &&
- g_module_symbol (module, "im_module_create", (gpointer *) &create))
+ g_module_symbol (module, "im_module_list", &list_ptr) &&
+ g_module_symbol (module, "im_module_init", &init_ptr) &&
+ g_module_symbol (module, "im_module_exit", &exit_ptr) &&
+ g_module_symbol (module, "im_module_create", &create_ptr))
{
const GtkIMContextInfo **contexts;
guint n_contexts;
int i;
+ list = list_ptr;
+ init = init_ptr;
+ exit = exit_ptr;
+ create = create_ptr;
+
print_escaped (path);
fputs ("\n", stdout);