Fix memory leak 32/272132/1 accepted/tizen/6.5/unified/20220311.132408 submit/tizen_6.5/20220310.052044
authorTaeminYeom <taemin.yeom@samsung.com>
Tue, 8 Mar 2022 10:09:20 +0000 (19:09 +0900)
committerTaemin Yeom <taemin.yeom@samsung.com>
Thu, 10 Mar 2022 04:40:56 +0000 (04:40 +0000)
Change-Id: I187f06e7585791adbe87cc00a08a8043393f64ba
Signed-off-by: TaeminYeom <taemin.yeom@samsung.com>
src/shared/channel.cpp
src/shared/event_loop.cpp

index 10ed266..fc7940e 100644 (file)
@@ -181,6 +181,8 @@ void channel::disconnect(void)
        if (m_handler) {
                _D("Disconnect channel[%p] handler[%p]", this, m_handler);
                m_handler->disconnected(this);
+               if (!m_loop)
+                       delete m_handler;
                m_handler = NULL;
        }
 
index a60ba38..840ec2a 100644 (file)
@@ -222,19 +222,7 @@ void event_loop::release_info(handler_info *info)
        g_io_channel_unref(info->g_ch);
 
        info->g_ch = NULL;
-       channel_event_handler *ce_handler = nullptr;
-       ce_handler = dynamic_cast<channel_event_handler *>(info->handler);
-       if (ce_handler) {
-               // _D("Add idle event for lazy release : handler[%p] event[%llu]", ce_handler, info->id);
-               add_idle_event(0, [](size_t, void *data) {
-                       channel_event_handler *handler = (channel_event_handler *)data;
-                       delete handler;
-               }, ce_handler);
-       } else {
-               // _D("Release handler[%p] event[%llu]", info->handler, info->id);
-               delete info->handler;
-       }
-
+       delete info->handler;
        info->handler = NULL;
 
        delete info;