summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2017-07-12 10:43:07 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2017-07-12 18:17:49 +0900
commit4233549a69339a9050e130b5adb23be3e2f73ded (patch)
tree05db0f5760d28798cc10dffd14e0dca45010a341
parent16953854cbcf909cd5c71bf36cbc8d692d85facb (diff)
downloadefl-4233549a69339a9050e130b5adb23be3e2f73ded.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,