eo: Don't resolve function calls for NULL objects

eo_function(NULL) always leads to a no-operation. A this
point it is basically considered the normal operation
with EO to just silently ignore NULL errors.

If the API function "eo_function" belongs to a class that
has not been loaded yet (eg. no object of this type has
been created yet), then the op associated to the API func
may not be defined yet.

Fixes T5715
This commit is contained in:
Jean-Philippe Andre 2017-07-12 10:43:07 +09:00
parent b156f606e4
commit 40029ce70a
1 changed files with 5 additions and 1 deletions

View File

@ -691,8 +691,12 @@ _efl_object_api_op_id_get(const void *api_func)
EAPI Efl_Object_Op
_efl_object_op_api_id_get(const void *api_func, const Eo *obj, const char *api_func_name, const char *file, int line)
{
Efl_Object_Op op = _efl_object_api_op_id_get_internal(api_func);
Efl_Object_Op op;
#ifndef EO_DEBUG
if (!obj) return EFL_NOOP;
#endif
op = _efl_object_api_op_id_get_internal(api_func);
if (op == EFL_NOOP)
{
eina_log_print(_eo_log_dom, EINA_LOG_LEVEL_ERR,