summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@osg.samsung.com>2018-02-21 17:50:18 +0100
committerDaniel Kolesa <d.kolesa@osg.samsung.com>2018-02-22 11:19:22 +0100
commit7b5a73b96765223ffcf1f74a7733beda655c33a0 (patch)
tree54928dc8c6297d4bc5f1e52c4c699bb7ae906281
parent8c7ba8c3a31ec671ccd6d7d30682dbd631d69a62 (diff)
downloadefl-7b5a73b96765223ffcf1f74a7733beda655c33a0.tar.gz
eolian: add eolian_object_add wrapper
-rw-r--r--src/lib/eolian/eo_parser.c7
-rw-r--r--src/lib/eolian/eolian_database.h7
2 files changed, 9 insertions, 5 deletions
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 031687a80c..3f888c5dc7 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -2287,12 +2287,9 @@ eo_parser_database_fill(Eolian_Unit *parent, const char *filename, Eina_Bool eot
}
ls->tmp.kls = NULL;
- eina_hash_set(ls->state->unit.classes, cl->full_name, cl);
- eina_hash_set(ls->unit->classes, cl->full_name, cl);
+ eolian_object_add(&cl->base, cl->full_name, ls->unit->classes);
+ eolian_object_add(&cl->base, cl->full_name, ls->state->unit.classes);
eina_hash_set(ls->state->classes_f, cl->base.file, cl);
- /* once for unit, once for state */
- eolian_object_ref(&cl->base);
- eolian_object_ref(&cl->base);
done:
ret = ls->unit;
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index 5811e93cad..e7ae5f1bb3 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -84,6 +84,13 @@ eolian_object_unref(Eolian_Object *obj)
return (--obj->refcount > 0);
}
+static inline void
+eolian_object_add(Eolian_Object *obj, Eina_Stringshare *name, Eina_Hash *hash)
+{
+ eina_hash_add(hash, name, obj);
+ eolian_object_ref(obj);
+}
+
struct _Eolian_Documentation
{
Eolian_Object base;