forked from enlightenment/enlightenment
clear wl pixmap cache on client free instead of leaking
This commit is contained in:
parent
a19957d3eb
commit
e7fcba8e8f
|
@ -87,6 +87,14 @@ _e_pixmap_image_clear_x(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_WAYLAND_CLIENTS) || defined(HAVE_WAYLAND_ONLY)
|
||||||
|
static void
|
||||||
|
_e_pixmap_image_clear_wl(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_FREE_LIST(data, _e_pixmap_resource_free);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_pixmap_free(E_Pixmap *cp)
|
_e_pixmap_free(E_Pixmap *cp)
|
||||||
{
|
{
|
||||||
|
@ -110,7 +118,9 @@ _e_pixmap_free(E_Pixmap *cp)
|
||||||
case E_PIXMAP_TYPE_WL:
|
case E_PIXMAP_TYPE_WL:
|
||||||
#if defined(HAVE_WAYLAND_CLIENTS) || defined(HAVE_WAYLAND_ONLY)
|
#if defined(HAVE_WAYLAND_CLIENTS) || defined(HAVE_WAYLAND_ONLY)
|
||||||
if (!cp->resource_cache) break;
|
if (!cp->resource_cache) break;
|
||||||
if (!cp->client)
|
if (cp->client)
|
||||||
|
evas_object_event_callback_add(cp->client->frame, EVAS_CALLBACK_FREE, _e_pixmap_image_clear_wl, cp->resource_cache);
|
||||||
|
else
|
||||||
{
|
{
|
||||||
void *i;
|
void *i;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue