summaryrefslogtreecommitdiff
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
parentb156f606e4fefb9b1d3ac0ca6d180e0d70e0140c (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 T5715
-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,