q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7b5a73b96765223ffcf1f74a7733beda655c33a0

commit 7b5a73b96765223ffcf1f74a7733beda655c33a0
Author: Daniel Kolesa <d.kol...@osg.samsung.com>
Date:   Wed Feb 21 17:50:18 2018 +0100

    eolian: add eolian_object_add wrapper
---
 src/lib/eolian/eo_parser.c       | 7 ++-----
 src/lib/eolian/eolian_database.h | 7 +++++++
 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;

-- 


Reply via email to