summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@osg.samsung.com>2016-05-26 14:17:07 +0100
committerDaniel Kolesa <d.kolesa@osg.samsung.com>2016-05-26 14:17:07 +0100
commit2781680b5141b2acac9b6c2d4dea8bab22ae254d (patch)
treeee67bec1e4897c49630753fe6b3eb6bd69397e22
parent3c6cb6a02b154ce6b7404653958aab82c58a8002 (diff)
downloadefl-2781680b5141b2acac9b6c2d4dea8bab22ae254d.tar.gz
eolian: put ownable checks into its own func
-rw-r--r--src/lib/eolian/eo_parser.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 5f83683111..d1c8c97160 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -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");