eolian: put ownable checks into its own func

This commit is contained in:
Daniel Kolesa 2016-05-26 14:17:07 +01:00
parent 3c6cb6a02b
commit 2781680b51
1 changed files with 10 additions and 6 deletions

View File

@ -691,6 +691,14 @@ _parse_dep(Eo_Lexer *ls, const char *fname, const char *name)
}
}
static Eina_Bool
_type_is_ownable(Eolian_Type *tp)
{
return (tp->type == EOLIAN_TYPE_POINTER ||
tp->type == EOLIAN_TYPE_COMPLEX ||
tp->type == EOLIAN_TYPE_CLASS);
}
static Eolian_Type *
parse_type_void(Eo_Lexer *ls)
{
@ -721,9 +729,7 @@ parse_type_void(Eo_Lexer *ls)
check_next(ls, '(');
eo_lexer_context_push(ls);
def = parse_type_void(ls);
if (def->type != EOLIAN_TYPE_POINTER &&
def->type != EOLIAN_TYPE_COMPLEX &&
def->type != EOLIAN_TYPE_CLASS)
if (!_type_is_ownable(def))
{
eo_lexer_context_restore(ls);
eo_lexer_syntax_error(ls, "ownable type expected");
@ -743,9 +749,7 @@ parse_type_void(Eo_Lexer *ls)
check_next(ls, '(');
eo_lexer_context_push(ls);
def = parse_type_void(ls);
if (def->type != EOLIAN_TYPE_POINTER &&
def->type != EOLIAN_TYPE_COMPLEX &&
def->type != EOLIAN_TYPE_CLASS)
if (!_type_is_ownable(def))
{
eo_lexer_context_restore(ls);
eo_lexer_syntax_error(ls, "freeable type expected");