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
This commit is contained in:
Tom Hacohen 2015-04-13 13:50:43 +01:00
parent 0d4f4721ea
commit 2da13de20a
1 changed files with 5 additions and 1 deletions

View File

@ -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;