evas gl common - fix potential invalid access during texture free

this should address CID 1223507
This commit is contained in:
Carsten Haitzler 2014-08-12 17:25:15 +09:00
parent 55715ccf05
commit 8845ecb2b2
1 changed files with 10 additions and 10 deletions

View File

@ -1394,25 +1394,25 @@ evas_gl_common_texture_free(Evas_GL_Texture *tex, Eina_Bool force EINA_UNUSED)
if (tex->pt)
{
tex->pt->allocations = eina_list_remove(tex->pt->allocations, tex->apt);
if (tex->apt)
eina_rectangle_pool_release(tex->apt);
if (tex->apt) eina_rectangle_pool_release(tex->apt);
tex->apt = NULL;
pt_unref(tex->pt);
tex->pt = NULL;
}
if (tex->ptt)
{
tex->ptt->allocations = eina_list_remove(tex->ptt->allocations, tex->aptt);
if (tex->aptt)
eina_rectangle_pool_release(tex->aptt);
if (tex->aptt) eina_rectangle_pool_release(tex->aptt);
tex->aptt = NULL;
pt_unref(tex->ptt);
tex->ptt = NULL;
}
if (tex->ptu)
pt_unref(tex->ptu);
if (tex->ptv)
pt_unref(tex->ptv);
if (tex->ptuv)
pt_unref(tex->ptuv);
if (tex->ptu) pt_unref(tex->ptu);
if (tex->ptv) pt_unref(tex->ptv);
if (tex->ptuv) pt_unref(tex->ptuv);
tex->ptu = NULL;
tex->ptv = NULL;
tex->ptuv = NULL;
evas_gl_common_texture_light_free(tex);
}