aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/eo
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2017-07-12 10:43:07 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2017-07-12 11:20:59 +0900
commit40029ce70a7b57352e7070825bf8b15490f2d2e8 (patch)
treefbe770efc48a94ce6ced5ed8088a9b8f843dd2f1 /src/lib/eo
parentcolorselector: Avoid API call on NULL object (diff)
downloadefl-40029ce70a7b57352e7070825bf8b15490f2d2e8.tar.gz
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 https://phab.enlightenment.org/T5715
Diffstat (limited to 'src/lib/eo')
-rw-r--r--src/lib/eo/eo.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index e4f767b687..2345fd3196 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -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,