From: <om101.woo@samsung.com>

Subject: image data get/set pairing issue

I found a bug about pairing
evas_object_image_data_get/set(eng_image_data_get/put).

It was added to count checked_out for paring
eglMapImageSEC/eglUnmapImageSEC.
 
In case of calling evas_object_image_data_set() twice after calling
evas_object_image_data_get(), dyn.checked_out has -1.

Then, if evas_object_image_data_get() and evas_object_image_data_set()
is call, it can't call eglUnmapImageSEC().
 
If dyn.checked_out has minus, it can make some problem.

So, I fixed this problem.
 
Please find enclosed patch file and let me know if I misunderstood.



SVN revision: 68504
This commit is contained in:
om101.woo 2012-02-28 11:55:14 +00:00 committed by Carsten Haitzler
parent 5756d4ad09
commit cf569fb2bf
1 changed files with 7 additions and 3 deletions

View File

@ -2540,11 +2540,15 @@ eng_image_data_put(void *data, void *image, DATA32 *image_data)
if (im->tex->pt->dyn.data == image_data)
{
im->tex->pt->dyn.checked_out--;
if (im->tex->pt->dyn.checked_out > 0)
{
im->tex->pt->dyn.checked_out--;
#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
if (im->tex->pt->dyn.checked_out == 0)
glsym_eglUnmapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
if (im->tex->pt->dyn.checked_out == 0)
glsym_eglUnmapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
#endif
}
return image;
}