Author: iratqq
Date: Sun Dec 30 07:17:51 2007
New Revision: 5074

Modified:
  trunk/uim/uim-notify.c

Log:
* uim/uim-notify.c
 - (uim_notify_load): dlclose when dlfunc failed.


Modified: trunk/uim/uim-notify.c
==============================================================================
--- trunk/uim/uim-notify.c      (original)
+++ trunk/uim/uim-notify.c      Sun Dec 30 07:17:51 2007
@@ -113,24 +113,28 @@
    uim_notify_init_func  = (int (*)(void))(intptr_t)dlfunc(notify_dlhandle, 
"uim_notify_init");
    if (!uim_notify_init_func) {
fprintf(stderr, "uim-notify: cannot found 'uim_notify_init()' in %s\n", path);
+      dlclose(notify_dlhandle);
      uim_notify_load_stderr();
      return 0;
    }
    uim_notify_quit_func  = (void (*)(void))(intptr_t)dlfunc(notify_dlhandle, 
"uim_notify_quit");
    if (!uim_notify_quit_func) {
fprintf(stderr, "uim-notify: cannot found 'uim_notify_quit()' in %s\n", path);
+      dlclose(notify_dlhandle);
      uim_notify_load_stderr();
      return 0;
    }
    uim_notify_info_func  = (int (*)(const char *, 
va_list))(intptr_t)dlfunc(notify_dlhandle, "uim_notify_info");
    if (!uim_notify_info_func) {
fprintf(stderr, "uim-notify: cannot found 'uim_notify_info()' in %s\n", path);
+      dlclose(notify_dlhandle);
      uim_notify_load_stderr();
      return 0;
    }
    uim_notify_fatal_func = (int (*)(const char *, 
va_list))(intptr_t)dlfunc(notify_dlhandle, "uim_notify_fatal");
    if (!uim_notify_fatal_func) {
fprintf(stderr, "uim-notify: cannot found 'uim_notify_fatal()' in %s\n", path);
+      dlclose(notify_dlhandle);
      uim_notify_load_stderr();
      return 0;
    }

Reply via email to