eolian: less messy initialization checks

This commit is contained in:
Daniel Kolesa 2014-09-12 14:20:52 +01:00
parent a1646ff61d
commit f8cef784a8
4 changed files with 32 additions and 22 deletions

View File

@ -41,32 +41,28 @@ database_typedef_del(Eolian_Type *tp)
database_type_del(tp);
}
Eina_Bool
void
database_type_add(Eolian_Type *def)
{
if (!_aliases) return EINA_FALSE;
eina_hash_set(_aliases, def->full_name, def);
eina_hash_set(_aliasesf, def->base.file, eina_list_append
((Eina_List*)eina_hash_find(_aliasesf, def->base.file), def));
return EINA_TRUE;
}
Eina_Bool database_struct_add(Eolian_Type *tp)
void
database_struct_add(Eolian_Type *tp)
{
if (!_structs) return EINA_FALSE;
eina_hash_set(_structs, tp->full_name, tp);
eina_hash_set(_structsf, tp->base.file, eina_list_append
((Eina_List*)eina_hash_find(_structsf, tp->base.file), tp));
return EINA_TRUE;
}
Eina_Bool database_enum_add(Eolian_Type *tp)
void
database_enum_add(Eolian_Type *tp)
{
if (!_enums) return EINA_FALSE;
eina_hash_set(_enums, tp->full_name, tp);
eina_hash_set(_enumsf, tp->base.file, eina_list_append
((Eina_List*)eina_hash_find(_enumsf, tp->base.file), tp));
return EINA_TRUE;
}
static void

View File

@ -18,30 +18,27 @@ database_var_del(Eolian_Variable *var)
free(var);
}
static Eina_Bool
static void
database_var_global_add(Eolian_Variable *var)
{
if (!_globals) return EINA_FALSE;
eina_hash_set(_globals, var->full_name, var);
eina_hash_set(_globalsf, var->base.file, eina_list_append
((Eina_List*)eina_hash_find(_globalsf, var->base.file), var));
return EINA_TRUE;
}
static Eina_Bool
static void
database_var_constant_add(Eolian_Variable *var)
{
if (!_constants) return EINA_FALSE;
eina_hash_set(_constants, var->full_name, var);
eina_hash_set(_constantsf, var->base.file, eina_list_append
((Eina_List*)eina_hash_find(_constantsf, var->base.file), var));
return EINA_TRUE;
}
Eina_Bool
void
database_var_add(Eolian_Variable *var)
{
if (var->type == EOLIAN_VAR_GLOBAL)
return database_var_global_add(var);
return database_var_constant_add(var);
database_var_global_add(var);
else
database_var_constant_add(var);
}

View File

@ -201,6 +201,8 @@ database_class_name_validate(const char *class_name, const Eolian_Class **cl)
EAPI Eina_Bool
eolian_eot_file_parse(const char *filepath)
{
if (_database_init_count <= 0)
return EINA_FALSE;
return eo_parser_database_fill(filepath, EINA_TRUE);
}
@ -210,6 +212,10 @@ eolian_eo_file_parse(const char *filepath)
Eina_Iterator *itr;
Eina_List *depl;
Eolian_Dependency *dep;
if (_database_init_count <= 0)
return EINA_FALSE;
char *bfiledup = strdup(filepath);
char *bfilename = basename(bfiledup);
const Eolian_Class *class = eolian_class_get_by_file(bfilename);
@ -317,6 +323,10 @@ EAPI Eina_Bool
eolian_all_eot_files_parse()
{
Eina_Bool ret = EINA_TRUE;
if (_database_init_count <= 0)
return EINA_FALSE;
eina_hash_foreach(_tfilenames, _tfile_parse, &ret);
return ret;
}
@ -332,6 +342,10 @@ EAPI Eina_Bool
eolian_all_eo_files_parse()
{
Eina_Bool ret = EINA_TRUE;
if (_database_init_count <= 0)
return EINA_FALSE;
eina_hash_foreach(_filenames, _file_parse, &ret);
return ret;
}
@ -339,5 +353,8 @@ eolian_all_eo_files_parse()
EAPI Eina_Bool
eolian_database_validate(void)
{
if (_database_init_count <= 0)
return EINA_FALSE;
return database_validate();
}

View File

@ -249,9 +249,9 @@ Eina_Bool database_class_name_validate(const char *class_name, const Eolian_Clas
/* types */
Eina_Bool database_type_add(Eolian_Type *def);
Eina_Bool database_struct_add(Eolian_Type *tp);
Eina_Bool database_enum_add(Eolian_Type *tp);
void database_type_add(Eolian_Type *def);
void database_struct_add(Eolian_Type *tp);
void database_enum_add(Eolian_Type *tp);
void database_type_del(Eolian_Type *tp);
void database_typedef_del(Eolian_Type *tp);
@ -267,7 +267,7 @@ void database_expr_print(Eolian_Expression *expr);
/* variables */
void database_var_del(Eolian_Variable *var);
Eina_Bool database_var_add(Eolian_Variable *var);
void database_var_add(Eolian_Variable *var);
/* classes */
void database_class_del(Eolian_Class *cl);