clear wl pixmap cache on client free instead of leaking

This commit is contained in:
Mike Blumenkrantz 2015-02-05 16:31:47 -05:00
parent a19957d3eb
commit e7fcba8e8f
1 changed files with 11 additions and 1 deletions

View File

@ -87,6 +87,14 @@ _e_pixmap_image_clear_x(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U
}
#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
_e_pixmap_free(E_Pixmap *cp)
{
@ -110,7 +118,9 @@ _e_pixmap_free(E_Pixmap *cp)
case E_PIXMAP_TYPE_WL:
#if defined(HAVE_WAYLAND_CLIENTS) || defined(HAVE_WAYLAND_ONLY)
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;