forked from enlightenment/efl
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:
parent
76dea59613
commit
b8a9d67c88
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue