diff options
Diffstat (limited to 'client/ug-client.c')
-rw-r--r-- | client/ug-client.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/client/ug-client.c b/client/ug-client.c index 38fe98f..bce59d5 100644 --- a/client/ug-client.c +++ b/client/ug-client.c @@ -20,8 +20,11 @@ */ #include <stdio.h> +#include <dlfcn.h> +#include <errno.h> #include <appcore-efl.h> #include <ui-gadget.h> +#include <ug-module.h> #include <dlog.h> #include <aul.h> @@ -492,9 +495,22 @@ func_out: static int app_terminate(void *data) { struct appdata *ad = data; + char *ug_file_path = NULL; + void *handle; + int ret; LOGD("app_terminate called"); + ret = ug_module_get_file_path(ad->name, &ug_file_path); + if (ret == 0) { + handle = dlopen(ug_file_path, RTLD_LAZY); + if (!handle) + LOGE("Failed to dlopen the ug file (%d)", errno); + } + + if (ug_file_path) + free(ug_file_path); + _ug_client_dbus_signal_handler_fini(data); evas_object_smart_callback_del(ad->win, "wm,rotation,changed", rotate); @@ -513,9 +529,6 @@ static int app_terminate(void *data) app_control_destroy(ad->request); - if (ad->name) - free(ad->name); - LOGD("app_terminate end"); return 0; |