Fix memory leak 91/272091/2 accepted/tizen/unified/20220311.111914 submit/tizen/20220310.052015
authorTaeminYeom <taemin.yeom@samsung.com>
Tue, 8 Mar 2022 10:09:20 +0000 (19:09 +0900)
committerHyotaek Shim <hyotaek.shim@samsung.com>
Thu, 10 Mar 2022 04:41:24 +0000 (04:41 +0000)
Change-Id: I187f06e7585791adbe87cc00a08a8043393f64ba
Signed-off-by: TaeminYeom <taemin.yeom@samsung.com>
src/shared/channel.cpp
src/shared/event_loop.cpp

index 10ed266bb060d61d2f951141d53f974363fa2e6b..fc7940e2a0d81b7ddec2ef27484db09483a7dd5c 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 a60ba38f9c15046f3fc721b9d14375a8710d25d5..840ec2a621db670904c00416668c4be8ab78af6c 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;