Add code to delete the shm pool when we destroy the swapper.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83291
This commit is contained in:
Christopher Michael 2013-01-24 09:59:50 +00:00 committed by Christopher Michael
parent 76dea59613
commit b8a9d67c88
1 changed files with 20 additions and 0 deletions

View File

@ -42,6 +42,7 @@ struct _Wl_Swapper
/* local function prototypes */
static Eina_Bool _evas_swapper_shm_pool_new(Wl_Swapper *ws);
static void _evas_swapper_shm_pool_free(Wl_Swapper *ws);
static Eina_Bool _evas_swapper_buffer_new(Wl_Swapper *ws, Wl_Buffer *wb);
static void _evas_swapper_buffer_free(Wl_Buffer *wb);
static void _evas_swapper_buffer_put(Wl_Swapper *ws, Wl_Buffer *wb, Eina_Rectangle *rects, unsigned int count);
@ -137,6 +138,9 @@ evas_swapper_free(Wl_Swapper *ws)
for (i = 0; i < ws->buff_num; i++)
_evas_swapper_buffer_free(&(ws->buff[i]));
/* free the shm pool */
_evas_swapper_shm_pool_free(ws);
/* free the allocated structure */
free(ws);
}
@ -269,6 +273,22 @@ _evas_swapper_shm_pool_new(Wl_Swapper *ws)
return EINA_TRUE;
}
static void
_evas_swapper_shm_pool_free(Wl_Swapper *ws)
{
/* check for valid swapper */
if (!ws) return;
/* check for valid pool */
if (!ws->pool) return;
/* unmap any existing data */
if (ws->data) munmap(ws->data, ws->pool_size);
/* destroy the shm pool */
wl_shm_pool_destroy(ws->pool);
}
static Eina_Bool
_evas_swapper_buffer_new(Wl_Swapper *ws, Wl_Buffer *wb)
{