From: SooChan Lim Date: Mon, 27 Sep 2021 02:04:28 +0000 (+0900) Subject: tdm: remove output->hwc_destroy_listerner X-Git-Tag: submit/tizen_6.5/20210604.093338~12 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bd62862c6e1e9c7197778bf799c8ac806235e35b;p=platform%2Fcore%2Fuifw%2Fpepper.git tdm: remove output->hwc_destroy_listerner fix the memory leak. Change-Id: Ib88fcdf1b3e9cbf48cd74f7215fb7a43f29a18dd --- diff --git a/src/lib/tdm/tdm-internal.h b/src/lib/tdm/tdm-internal.h index 0b553d4..f2c01d4 100644 --- a/src/lib/tdm/tdm-internal.h +++ b/src/lib/tdm/tdm-internal.h @@ -89,6 +89,8 @@ struct pepper_tdm_output { tbm_surface_h back, front; pepper_bool_t page_flip_pending; + pepper_event_listener_t *hwc_destroy_listener; + pepper_list_t link; }; diff --git a/src/lib/tdm/tdm-output.c b/src/lib/tdm/tdm-output.c index 23f967f..7ceb3a5 100644 --- a/src/lib/tdm/tdm-output.c +++ b/src/lib/tdm/tdm-output.c @@ -69,7 +69,11 @@ __tdm_hwc_destroy(pepper_event_listener_t *listener, pepper_object_t *object, { PEPPER_INFO("\n"); - free(data); + pepper_tdm_output_t *output = data; + + pepper_event_listener_remove(output->hwc_destroy_listener); + + free(output->hwc); } static int @@ -116,10 +120,10 @@ __tdm_output_hwc_init(pepper_tdm_output_t *output) PEPPER_CHECK(hwc->base, goto error, "pepper_output_initialize_hwc() failed\n"); // add destory handler for pepper_hwc object - pepper_object_add_event_listener((pepper_object_t *)hwc->base, - PEPPER_EVENT_OBJECT_DESTROY, - 0, - __tdm_hwc_destroy, hwc); + output->hwc_destroy_listener = pepper_object_add_event_listener((pepper_object_t *)hwc->base, + PEPPER_EVENT_OBJECT_DESTROY, + 0, + __tdm_hwc_destroy, output); output->hwc = hwc;