diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2016-08-15 11:40:31 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2016-08-15 11:40:31 +0900 |
commit | 6728822e91ededf5053fed8e0f677b2cfd37797d (patch) | |
tree | 4b5b3a9ffe25e2a22bf1d19aebca54b1c4a9be47 /src | |
parent | e7d56e9ece17838ddca568f3e316c5252ea9e352 (diff) | |
download | efl-6728822e91ededf5053fed8e0f677b2cfd37797d.tar.gz |
evas smart obj - handle invalid object id's when scop data get is NULL
handle smart member add if the object is invalid withotu crashing.
also don't abort and crash with other invalid states like of smart
object or child is to be deleted, has no layer etc. - continue on
safely without a crash.
@fix
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/evas/canvas/evas_object_smart.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index 2a77d9f5da..63b01ab084 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -219,29 +219,26 @@ _efl_canvas_group_group_member_add(Eo *smart_obj, Evas_Smart_Data *o, Evas_Objec Evas_Object_Protected_Data *smart = eo_data_scope_get(smart_obj, EFL_CANVAS_OBJECT_CLASS); Evas_Smart_Data *member_o = NULL; + if ((!obj) || (!smart)) return; if (obj->delete_me) { CRI("Adding deleted object %p to smart obj %p", eo_obj, smart_obj); - abort(); return; } if (smart->delete_me) { CRI("Adding object %p to deleted smart obj %p", eo_obj, smart_obj); - abort(); return; } if (!smart->layer) { CRI("No evas surface associated with smart object (%p)", smart_obj); - abort(); return; } if ((obj->layer && smart->layer) && (obj->layer->evas != smart->layer->evas)) { CRI("Adding object %p from Evas (%p) from another Evas (%p)", eo_obj, obj->layer->evas, smart->layer->evas); - abort(); return; } |