evas_object_pointer_grab_del(Evas_Object_Protected_Data *obj,
Evas_Object_Pointer_Data *pdata)
{
+ if (!EVAS_OBJECT_DATA_ALIVE(obj)) goto on_error;
+
//TIZEN_ONLY(20220304): evas: ++safety
if ((pdata->mouse_grabbed > 0) && (obj->layer) && (obj->layer->evas) && (pdata->evas_pdata) && (pdata->evas_pdata->seat))
pdata->evas_pdata->seat->mouse_grabbed -= pdata->mouse_grabbed;
//TIZEN_ONLY(20220304): evas: ++safety
- if (((pdata->mouse_in && pdata->evas_pdata && pdata->evas_pdata->seat && pdata->evas_pdata->seat->mouse_grabbed == 0) ||
+ if (((pdata->mouse_in && pdata->evas_pdata &&
+ pdata->evas_pdata->seat &&
+ pdata->evas_pdata->seat->mouse_grabbed == 0) ||
(pdata->mouse_grabbed > 0)) &&
- (obj->layer) && (obj->layer->evas))
+ (obj->layer) &&
+ (obj->layer->evas))
{
//TIZEN_ONLY(20220318): evas: ++safety, null defect fix
if(pdata->evas_pdata && pdata->evas_pdata->seat)
}
free(pdata);
+ return;
+
+ on_error:
+ ERR("pointer_grab_del:data not valid");
+ if (pdata) free(pdata);
}
static Evas_Object_Pointer_Data *