diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2016-09-07 16:44:03 +0900 |
---|---|---|
committer | Jean-Philippe Andre <jp.andre@samsung.com> | 2016-10-12 11:25:55 +0900 |
commit | 9e235faf904a079c92513a8a50fa4b0796ca515d (patch) | |
tree | 6e1b89e4b6361b4f2dd867d572a87dfc90081c68 | |
parent | f06c8b08f3947032238525f500a664676aaba820 (diff) | |
download | efl-9e235faf904a079c92513a8a50fa4b0796ca515d.tar.gz |
evas_data: Fix safety checks in evas_object_data
This relies on efl_isa rather than the broken magic check
(by broken I mean it only checks for NULL).
-rw-r--r-- | src/lib/evas/canvas/evas_data.c | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/src/lib/evas/canvas/evas_data.c b/src/lib/evas/canvas/evas_data.c index f76fec5868..f6b83e7215 100644 --- a/src/lib/evas/canvas/evas_data.c +++ b/src/lib/evas/canvas/evas_data.c @@ -1,35 +1,27 @@ #include "evas_common_private.h" #include "evas_private.h" - EAPI void -evas_object_data_set(Evas_Object *obj, const char *key, const void *data) +evas_object_data_set(Evas_Object *eo_obj, const char *key, const void *data) { - MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); - return; - MAGIC_CHECK_END(); - efl_key_data_set(obj, key, data); + if (!efl_isa(eo_obj, EFL_CANVAS_OBJECT_CLASS)) return; + efl_key_data_set(eo_obj, key, data); } EAPI void * -evas_object_data_get(const Evas_Object *obj, const char *key) +evas_object_data_get(const Evas_Object *eo_obj, const char *key) { - MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); - return NULL; - MAGIC_CHECK_END(); - void *data = NULL; - data = efl_key_data_get((Evas_Object *)obj, key); - return data; + if (!efl_isa(eo_obj, EFL_CANVAS_OBJECT_CLASS)) return NULL; + return efl_key_data_get(eo_obj, key); } EAPI void * -evas_object_data_del(Evas_Object *obj, const char *key) +evas_object_data_del(Evas_Object *eo_obj, const char *key) { - MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); - return NULL; - MAGIC_CHECK_END(); - void *data = NULL; - data = efl_key_data_get(obj, key); - efl_key_data_set(obj, key, NULL); + void *data; + + if (!efl_isa(eo_obj, EFL_CANVAS_OBJECT_CLASS)) return NULL; + data = efl_key_data_get(eo_obj, key); + efl_key_data_set(eo_obj, key, NULL); return data; } |