eolian: put ownable checks into its own func
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Thu, 26 May 2016 13:17:07 +0000 (14:17 +0100)
committerDaniel Kolesa <d.kolesa@osg.samsung.com>
Thu, 26 May 2016 13:17:07 +0000 (14:17 +0100)
src/lib/eolian/eo_parser.c

index 5f83683..d1c8c97 100644 (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");