evas filter: remove critical messages from Evas Filter

Summary:
When you run filter examples with enabling GL engine support,
you can see critical messages which say don't use efl_unref for buffer object.
So, efl_unref has to be replaced with efl_del.
@fix

Test Plan: Run filter example with GL

Reviewers: cedric, Hermet, raster, woohyun

Reviewed By: Hermet

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7119
This commit is contained in:
Youngbok Shin 2018-10-26 19:30:28 +09:00 committed by Hermet Park
parent 9de082eb83
commit 4107e7644d
1 changed files with 13 additions and 2 deletions

View File

@ -41,6 +41,17 @@ static void _filter_buffer_unlock_all(Evas_Filter_Context *ctx);
#define _free(ptr) free(ptr)
//eina_freeq_ptr_main_add(ptr, NULL, sizeof(*ptr))
static void
_buffer_del(Eo *buffer)
{
if (!buffer) return;
if (efl_parent_get(buffer))
efl_del(buffer);
else
efl_unref(buffer);
}
Evas_Filter_Context *
evas_filter_context_new(Evas_Public_Data *evas, Eina_Bool async, void *user_data)
{
@ -116,7 +127,7 @@ static void
_filter_buffer_backing_free(Evas_Filter_Buffer *fb)
{
if (!fb || !fb->buffer) return;
efl_unref(fb->buffer);
_buffer_del((Eo *)fb->buffer);
fb->buffer = NULL;
}
@ -600,7 +611,7 @@ evas_filter_buffer_backing_set(Evas_Filter_Context *ctx, int bufid,
ret = EINA_TRUE;
end:
if (fb->buffer != buffer) efl_unref(fb->buffer);
if (fb->buffer != buffer) _buffer_del((Eo *)fb->buffer);
fb->buffer = buffer;
return ret;
}