Check launch argv handler registration 90/273790/1
authorHwankyu Jhun <h.jhun@samsung.com>
Wed, 13 Apr 2022 23:53:56 +0000 (08:53 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Wed, 13 Apr 2022 23:53:56 +0000 (08:53 +0900)
If the handler is already registered, AUL doesn't register it again.

Change-Id: If7aa6ee79dfc86f0cdf6cb863983b092a026e320
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
src/aul_launch.c

index e5167fe..7c2c054 100644 (file)
@@ -84,6 +84,7 @@ typedef struct launch_context_s {
        GList* clients;
        GRecMutex mutex;
        GMainContext *tizen_context;
+       bool touch_argv_handler;
 } launch_context;
 
 static launch_context __context;
@@ -616,6 +617,8 @@ static void __finalize_context(void)
        if (!__context.initialized)
                return;
 
+       __context.touch_argv_handler = false;
+
        if (__context.worker) {
                aul_worker_destroy(__context.worker);
                __context.worker = NULL;
@@ -741,6 +744,11 @@ API int aul_launch_argv_handler(int argc, char **argv)
                return AUL_R_ENOINIT;
        }
 
+       if (__context.touch_argv_handler) {
+               _E("Already registered");
+               return AUL_R_OK;
+       }
+
        b = bundle_import_from_argv(argc, argv);
        if (!b)
                _E("Bundle is nullptr");
@@ -751,6 +759,7 @@ API int aul_launch_argv_handler(int argc, char **argv)
                return AUL_R_ERROR;
        }
 
+       __context.touch_argv_handler = true;
        return AUL_R_OK;
 }