Fix bug about launch_app tool 65/81865/1
authorHwankyu Jhun <h.jhun@samsung.com>
Fri, 29 Jul 2016 01:22:34 +0000 (10:22 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Fri, 29 Jul 2016 01:22:34 +0000 (10:22 +0900)
Change-Id: I339f0108944652b5a0e97805d5e34790a3efac40
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
tool/launch_app.c

index 8fe5a9a..d15b777 100644 (file)
@@ -97,22 +97,24 @@ static int __launch_app_dead_handler(int pid, void *data)
        return 0;
 }
 
-static gboolean run_func(void *data)
+static gboolean run_func(gpointer data)
 {
        int pid;
        const char *str;
 
-       if ((pid = launch()) > 0) {
+       pid = launch();
+       if (pid > 0) {
                printf("... successfully launched\n");
                str = bundle_get_val(kb, "__LAUNCH_APP_MODE__");
-
-               if (str && strcmp(str, "SYNC") == 0)
-                       aul_listen_app_dead_signal(__launch_app_dead_handler, (void *)(intptr_t)pid);
-               else
-                       g_main_loop_quit(mainloop);
+               if (str && strcmp(str, "SYNC") == 0) {
+                       aul_listen_app_dead_signal(__launch_app_dead_handler,
+                                       (void *)(intptr_t)pid);
+                       bundle_free(kb);
+                       kb = NULL;
+                       return FALSE;
+               }
        } else {
                printf("... launch failed\n");
-               g_main_loop_quit(mainloop);
        }
 
        if (kb) {
@@ -120,7 +122,9 @@ static gboolean run_func(void *data)
                kb = NULL;
        }
 
-       return TRUE;
+       g_main_loop_quit(mainloop);
+
+       return FALSE;
 }
 
 int main(int argc, char **argv)