summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2016-09-07 16:44:03 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2016-10-12 11:25:55 +0900
commit9e235faf904a079c92513a8a50fa4b0796ca515d (patch)
tree6e1b89e4b6361b4f2dd867d572a87dfc90081c68
parentf06c8b08f3947032238525f500a664676aaba820 (diff)
downloadefl-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.c32
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;
}