q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0cc319a5b2184245405d03233b32cdeca5d35f77

commit 0cc319a5b2184245405d03233b32cdeca5d35f77
Author: Daniel Kolesa <d.kol...@samsung.com>
Date:   Tue Jul 1 17:55:34 2014 +0100

    eolian: restrict own() for pointers only
---
 src/lib/eolian/eo_parser.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 673b516..2e4c9b0 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -203,11 +203,16 @@ parse_type_void(Eo_Lexer *ls)
           }
         case KW_own:
           {
-             int line;
+             int sline = ls->line_number, line;
              eo_lexer_get(ls);
              line = ls->line_number;
              check_next(ls, '(');
              def = parse_type_void(ls);
+             if (def->type != EOLIAN_TYPE_POINTER)
+               {
+                  ls->line_number = sline;
+                  eo_lexer_syntax_error(ls, "pointer type expected");
+               }
              def->is_own = EINA_TRUE;
              check_match(ls, ')', '(', line);
              goto parse_ptr;

-- 


Reply via email to