Fix svace issue 70/309070/2
authorhuiyu.eun <huiyu.eun@samsung.com>
Thu, 4 Apr 2024 08:29:06 +0000 (17:29 +0900)
committerhuiyu.eun <huiyu.eun@samsung.com>
Thu, 4 Apr 2024 08:36:13 +0000 (17:36 +0900)
leaked_storage : Ignoring sotrage allocated by ecore_event_hadnler_add() leak it.
->Delete the handler.

Change-Id: I54704a738af625735a23279ed61fcc4f99212597
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
src/video/tizen/SDL_tizenwindow.c
src/video/tizen/indicator/SDL_tizenindicator.c

index da12fc6..3b75b2c 100755 (executable)
@@ -51,6 +51,7 @@
 
 /*SDL indicator*/
 Ecore_Ipc_Server *ipc = NULL;
+std::vector<Ecore_Event_Handler*> mEcoreEventHandler;
 
 #define IPC_HEAD(_type) \
    Ecore_Ipc_Event_Client_##_type *e = event; \
@@ -231,9 +232,9 @@ _tizen_init_ecore_ipc()
         if(!ipc)
             ecore_ipc_shutdown();
 
-        ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_ADD, _cb_client_add, NULL);
-        ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DEL, _cb_client_del, NULL);
-        ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DATA, _cb_client_data, NULL);
+        mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_ADD, _cb_client_add, NULL));
+        mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DEL, _cb_client_del, NULL));
+        mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DATA, _cb_client_data, NULL));
     }
     return 0;
 }
@@ -584,10 +585,10 @@ _tizen_output_transform_register(SDL_WindowData *wind)
     Ecore_Wl2_Output *output = ecore_wl2_window_output_find(wind->window);
     wind->output_rotation = ecore_wl2_output_transform_get(output) * 90;
 
-    ecore_event_handler_add(ECORE_WL2_EVENT_OUTPUT_TRANSFORM,
-                             _tizen_cb_output_transform, NULL);
-    ecore_event_handler_add(ECORE_WL2_EVENT_IGNORE_OUTPUT_TRANSFORM,
-                             _tizen_cb_ignore_output_transform, NULL);
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_WL2_EVENT_OUTPUT_TRANSFORM,
+                             _tizen_cb_output_transform, NULL));
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_WL2_EVENT_IGNORE_OUTPUT_TRANSFORM,
+                             _tizen_cb_ignore_output_transform, NULL));
 }
 
 void
@@ -1335,38 +1336,38 @@ Tizen_InitWindow(_THIS)
 
     data->windows = eina_hash_int32_new(NULL);
 
-    ecore_event_handler_add(ECORE_WL2_EVENT_WINDOW_VISIBILITY_CHANGE,
-                        _tizen_cb_event_window_visibility_change,_this);
-    ecore_event_handler_add(ECORE_WL2_EVENT_WINDOW_ROTATE,
-                        _tizen_cb_event_window_rotate,_this);
-    ecore_event_handler_add(ECORE_WL2_EVENT_WINDOW_CONFIGURE,
-                        _tizen_cb_window_configure,_this);
-    ecore_event_handler_add(ECORE_WL2_EVENT_WINDOW_SHOW,
-                        _tizen_cb_event_window_show, _this);
-
-    ecore_event_handler_add(ECORE_EVENT_KEY_UP,
-                        _tizen_cb_event_keyup_change,_this);
-    ecore_event_handler_add(ECORE_EVENT_KEY_DOWN,
-                        _tizen_cb_event_keydown_change,_this);
-
-    ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN,
-                        _tizen_cb_event_mousedown_change,_this);
-    ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP,
-                        _tizen_cb_event_mouseup_change,_this);
-    ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE,
-                        _tizen_cb_event_mousemove_change,_this);
-    ecore_event_handler_add(ECORE_EVENT_MOUSE_IN,
-                        _tizen_cb_event_mouse_in,_this);
-    ecore_event_handler_add(ECORE_EVENT_MOUSE_OUT,
-                        _tizen_cb_event_mouse_out,_this);
-
-    ecore_event_handler_add(ECORE_WL2_EVENT_FOCUS_IN,
-                        _tizen_cb_event_focus_in,_this);
-    ecore_event_handler_add(ECORE_WL2_EVENT_FOCUS_OUT,
-                        _tizen_cb_event_focus_out,_this);
-
-    ecore_event_handler_add(ECORE_EVENT_JOYSTICK,
-                        _tizen_cb_event_joystick_change,_this);
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_WL2_EVENT_WINDOW_VISIBILITY_CHANGE,
+                        _tizen_cb_event_window_visibility_change,_this));
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_WL2_EVENT_WINDOW_ROTATE,
+                        _tizen_cb_event_window_rotate,_this));
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_WL2_EVENT_WINDOW_CONFIGURE,
+                        _tizen_cb_window_configure,_this));
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_WL2_EVENT_WINDOW_SHOW,
+                        _tizen_cb_event_window_show, _this));
+
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_EVENT_KEY_UP,
+                        _tizen_cb_event_keyup_change,_this));
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_EVENT_KEY_DOWN,
+                        _tizen_cb_event_keydown_change,_this));
+
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN,
+                        _tizen_cb_event_mousedown_change,_this));
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP,
+                        _tizen_cb_event_mouseup_change,_this));
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE,
+                        _tizen_cb_event_mousemove_change,_this));
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_EVENT_MOUSE_IN,
+                        _tizen_cb_event_mouse_in,_this));
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_EVENT_MOUSE_OUT,
+                        _tizen_cb_event_mouse_out,_this));
+
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_WL2_EVENT_FOCUS_IN,
+                        _tizen_cb_event_focus_in,_this));
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_WL2_EVENT_FOCUS_OUT,
+                        _tizen_cb_event_focus_out,_this));
+
+    mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_EVENT_JOYSTICK,
+                        _tizen_cb_event_joystick_change,_this));
 
     return 0;
 }
@@ -1374,6 +1375,13 @@ Tizen_InitWindow(_THIS)
 void
 Tizen_DeinitWindow(_THIS)
 {
+    int size = mECoreEventHandler.size();
+    for (int i = 0; i < size; i++)
+    {
+        ecore_event_handler_del(*mECoreEventHandler[i]);
+    }
+    mEcoreEventHandler.Clear();
+
     SDL_VideoData *data = _this->driverdata;
 
     eina_hash_free(data->windows);
index 58cb5a2..93ad116 100644 (file)
@@ -13,6 +13,8 @@
 #include "SDL_tizenindicator.h"
 #include "dbg.h"
 
+std::vector<Ecore_Event_Handler*> mEcoreEventHandler;
+
 static Eina_Bool
 _tizen_set_transient_for (appdata_s *ad, uint32_t child_id, uint32_t parent_id)
 {
@@ -223,9 +225,9 @@ void create_ipcServer(appdata_s *ad)
        ecore_ipc_init();
        if((ad->IpcServer = ecore_ipc_server_connect(ECORE_IPC_LOCAL_USER, ECORE_IPC_INDICATOR, 0, NULL)))
        {
-               ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_ADD, handler_server_add, ad);
-               ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL, handler_server_del, NULL);
-               ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DATA, handler_server_data, ad);
+               mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_ADD, handler_server_add, ad));
+               mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL, handler_server_del, NULL));
+               mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DATA, handler_server_data, ad));
        }
        else
        {
@@ -326,7 +328,7 @@ void init_info(appdata_s *ad)
 static void
 create_base_gui(appdata_s *ad)
 {
-    ecore_event_handler_add(ECORE_WL2_EVENT_WINDOW_SHOW, _window_show_cb, ad);
+       mEcoreEventHandler.push_back(ecore_event_handler_add(ECORE_WL2_EVENT_WINDOW_SHOW, _window_show_cb, ad));
 
        ad->win = (Evas_Object *)elm_win_create("SDL_Indicator");
        evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL);
@@ -446,5 +448,11 @@ main(int argc, char *argv[])
                dlog_print(DLOG_ERROR, LOG_TAG, "app_main() is failed. err = %d", ret);
        }
 
+       int size = mECoreEventHandler.size();
+       for (int i = 0; i < size; i++)
+       {
+               ecore_event_handler_del(*mECoreEventHandler[i]);
+       }
+       mEcoreEventHandler.Clear();
        return ret;
 }