diff options
author | Daniel Kolesa <d.kolesa@osg.samsung.com> | 2018-02-23 15:25:32 +0100 |
---|---|---|
committer | Daniel Kolesa <d.kolesa@osg.samsung.com> | 2018-02-23 15:25:55 +0100 |
commit | 39820fb5f58ea9528982d8ee63f37be0639f57a1 (patch) | |
tree | 768e6f55f4281428421404e4ccb8a74c4fd3fe51 | |
parent | 1a7dabeb74fa6a039b431b0e8442f43ead15282e (diff) | |
download | efl-39820fb5f58ea9528982d8ee63f37be0639f57a1.tar.gz |
eolian: simplify adding/refcounting objects
-rw-r--r-- | src/lib/eolian/database_type.c | 9 | ||||
-rw-r--r-- | src/lib/eolian/database_var.c | 6 | ||||
-rw-r--r-- | src/lib/eolian/eo_parser.c | 3 | ||||
-rw-r--r-- | src/lib/eolian/eolian_database.c | 3 | ||||
-rw-r--r-- | 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; |