q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=39820fb5f58ea9528982d8ee63f37be0639f57a1

commit 39820fb5f58ea9528982d8ee63f37be0639f57a1
Author: Daniel Kolesa <d.kol...@osg.samsung.com>
Date:   Fri Feb 23 15:25:32 2018 +0100

    eolian: simplify adding/refcounting objects
---
 src/lib/eolian/database_type.c   | 9 +++------
 src/lib/eolian/database_var.c    | 6 ++----
 src/lib/eolian/eo_parser.c       | 3 +--
 src/lib/eolian/eolian_database.c | 3 +--
 src/lib/eolian/eolian_database.h | 6 ++++++
 5 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/src/lib/eolian/database_type.c b/src/lib/eolian/database_type.c
index 052a2ea577..1b881be415 100644
--- a/src/lib/eolian/database_type.c
+++ b/src/lib/eolian/database_type.c
@@ -43,8 +43,7 @@ database_typedecl_del(Eolian_Typedecl *tp)
 void
 database_type_add(Eolian_Unit *unit, Eolian_Typedecl *tp)
 {
-   eolian_object_add(&tp->base, tp->full_name, unit->state->unit.aliases);
-   eolian_object_add(&tp->base, tp->full_name, unit->aliases);
+   EOLIAN_OBJECT_ADD(unit, tp->full_name, tp, aliases);
    eina_hash_set(unit->state->aliases_f, tp->base.file, eina_list_append
                 ((Eina_List*)eina_hash_find(unit->state->aliases_f, 
tp->base.file),
                 tp));
@@ -54,8 +53,7 @@ database_type_add(Eolian_Unit *unit, Eolian_Typedecl *tp)
 void
 database_struct_add(Eolian_Unit *unit, Eolian_Typedecl *tp)
 {
-   eolian_object_add(&tp->base, tp->full_name, unit->state->unit.structs);
-   eolian_object_add(&tp->base, tp->full_name, unit->structs);
+   EOLIAN_OBJECT_ADD(unit, tp->full_name, tp, structs);
    eina_hash_set(unit->state->structs_f, tp->base.file, eina_list_append
                 ((Eina_List*)eina_hash_find(unit->state->structs_f, 
tp->base.file), tp));
    database_decl_add(unit, tp->full_name, EOLIAN_DECL_STRUCT, tp->base.file, 
tp);
@@ -64,8 +62,7 @@ database_struct_add(Eolian_Unit *unit, Eolian_Typedecl *tp)
 void
 database_enum_add(Eolian_Unit *unit, Eolian_Typedecl *tp)
 {
-   eolian_object_add(&tp->base, tp->full_name, unit->state->unit.enums);
-   eolian_object_add(&tp->base, tp->full_name, unit->enums);
+   EOLIAN_OBJECT_ADD(unit, tp->full_name, tp, enums);
    eina_hash_set(unit->state->enums_f, tp->base.file, eina_list_append
                 ((Eina_List*)eina_hash_find(unit->state->enums_f, 
tp->base.file), tp));
    database_decl_add(unit, tp->full_name, EOLIAN_DECL_ENUM, tp->base.file, tp);
diff --git a/src/lib/eolian/database_var.c b/src/lib/eolian/database_var.c
index c33df7261d..4afc703277 100644
--- a/src/lib/eolian/database_var.c
+++ b/src/lib/eolian/database_var.c
@@ -25,8 +25,7 @@ database_var_del(Eolian_Variable *var)
 static void
 database_var_global_add(Eolian_Unit *unit, Eolian_Variable *var)
 {
-   eolian_object_add(&var->base, var->full_name, unit->state->unit.globals);
-   eolian_object_add(&var->base, var->full_name, unit->globals);
+   EOLIAN_OBJECT_ADD(unit, var->full_name, var, globals);
    eina_hash_set(unit->state->globals_f, var->base.file, eina_list_append
                  ((Eina_List*)eina_hash_find(unit->state->globals_f, 
var->base.file), var));
    database_decl_add(unit, var->full_name, EOLIAN_DECL_VAR, var->base.file, 
var);
@@ -35,8 +34,7 @@ database_var_global_add(Eolian_Unit *unit, Eolian_Variable 
*var)
 static void
 database_var_constant_add(Eolian_Unit *unit, Eolian_Variable *var)
 {
-   eolian_object_add(&var->base, var->full_name, unit->state->unit.constants);
-   eolian_object_add(&var->base, var->full_name, unit->constants);
+    EOLIAN_OBJECT_ADD(unit, var->full_name, var, constants);
    eina_hash_set(unit->state->constants_f, var->base.file, eina_list_append
                  ((Eina_List*)eina_hash_find(unit->state->constants_f, 
var->base.file), var));
    database_decl_add(unit, var->full_name, EOLIAN_DECL_VAR, var->base.file, 
var);
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 7d9eaad525..6ed90395d3 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -2285,8 +2285,7 @@ eo_parser_database_fill(Eolian_Unit *parent, const char 
*filename, Eina_Bool eot
      }
    ls->tmp.kls = NULL;
 
-   eolian_object_add(&cl->base, cl->full_name, ls->unit->classes);
-   eolian_object_add(&cl->base, cl->full_name, ls->state->unit.classes);
+   EOLIAN_OBJECT_ADD(ls->unit, cl->full_name, cl, classes);
    eina_hash_set(ls->state->classes_f, cl->base.file, cl);
 
 done:
diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c
index e5b816e18f..ab58486b46 100644
--- a/src/lib/eolian/eolian_database.c
+++ b/src/lib/eolian/eolian_database.c
@@ -20,8 +20,7 @@ database_decl_add(Eolian_Unit *unit, Eina_Stringshare *name,
    decl->type = type;
    decl->name = name;
    decl->data = ptr;
-   eolian_object_add(&decl->base, name, unit->state->unit.decls);
-   eolian_object_add(&decl->base, name, unit->decls);
+   EOLIAN_OBJECT_ADD(unit, name, decl, decls);
    eina_hash_set(unit->state->decls_f, file, eina_list_append
                  ((Eina_List*)eina_hash_find(unit->state->decls_f, file), 
decl));
 }
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index 3e87e9c933..58fd1c8d16 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -91,6 +91,12 @@ eolian_object_add(Eolian_Object *obj, Eina_Stringshare 
*name, Eina_Hash *hash)
    eolian_object_ref(obj);
 }
 
+#define EOLIAN_OBJECT_ADD(tunit, name, obj, memb) \
+{ \
+   eolian_object_add(&obj->base, name, tunit->state->unit.memb); \
+   eolian_object_add(&obj->base, name, tunit->memb); \
+}
+
 struct _Eolian_Documentation
 {
    Eolian_Object base;

-- 


Reply via email to