From 2da13de20aff0f3f849589440302c0f2ec0a0ddf Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Mon, 13 Apr 2015 13:50:43 +0100 Subject: [PATCH] Evas object: verify the parent is valid and fail if not. It seems like before the switch to Eo, all the object_*_add functions had magic checks that only allowed non NULL Evas pointers to be passed. Since we switched to Eo we apparently missed the early failure we used to have, and we instead fail later. This patch should fix that. Thanks to jaehwan for reporting. @fix --- src/lib/evas/canvas/evas_object_main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index 3c0c8d51f9..d25a460096 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -85,11 +85,15 @@ _init_cow(void) EOLIAN static void _evas_object_eo_base_constructor(Eo *eo_obj, Evas_Object_Protected_Data *obj) { + Eo *parent = NULL; + eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_do(eo_obj, evas_obj_type_set(MY_CLASS_NAME)); eo_manual_free_set(eo_obj, EINA_TRUE); - if (!obj || !_init_cow()) + eo_do(eo_obj, parent = eo_parent_get()); + + if (!obj || !_init_cow() || !eo_isa(parent, EVAS_COMMON_INTERFACE_INTERFACE)) { eo_error_set(eo_obj); return;