q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=918987ef8aa3b5a5ae145530d23d6857b771f32f

commit 918987ef8aa3b5a5ae145530d23d6857b771f32f
Author: Daniel Kolesa <d.kol...@samsung.com>
Date:   Fri Jan 10 20:02:41 2020 +0100

    eolian: fix parsing of c_name tags
    
    It was not properly consuming the ending ) token.
---
 src/lib/eolian/eo_parser.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 253e99e929..730669b295 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -219,6 +219,7 @@ parse_c_name(Eo_Lexer *ls)
         check_match(ls, ')', '(', pline, pcol);
         return NULL; /* unreachable */
      }
+   eo_lexer_get(ls);
    return cname;
 }
 
@@ -481,10 +482,7 @@ parse_struct(Eo_Lexer *ls, const char *name, Eina_Bool 
is_extern,
         def->ownable = EINA_TRUE;
      }
    if (cname)
-     {
-        def->base.c_name = cname;
-        eo_lexer_dtor_pop(ls);
-     }
+     def->base.c_name = eina_stringshare_ref(cname);
    else
      def->base.c_name = make_c_name(name);
    /* we can't know the order, pop when both are filled */
@@ -865,7 +863,7 @@ tags_done:
    def->base.name = eina_stringshare_add(eina_strbuf_string_get(buf));
    if (cname)
      {
-        def->base.c_name = cname;
+        def->base.c_name = eina_stringshare_ref(cname);
         eo_lexer_dtor_pop(ls);
      }
    else
@@ -922,7 +920,7 @@ tags_done:
    def->base.name = eina_stringshare_add(eina_strbuf_string_get(buf));
    if (cname)
      {
-        def->base.c_name = cname;
+        def->base.c_name = eina_stringshare_ref(cname);
         eo_lexer_dtor_pop(ls);
      }
    else
@@ -986,7 +984,7 @@ tags_done:
    def->base.name = eina_stringshare_add(eina_strbuf_string_get(buf));
    if (cname)
      {
-        def->base.c_name = cname;
+        def->base.c_name = eina_stringshare_ref(cname);
         eo_lexer_dtor_pop(ls);
      }
    else
@@ -1448,7 +1446,7 @@ tags_done:
    def->base.name = eina_stringshare_add(eina_strbuf_string_get(buf));
    if (cname)
      {
-        def->base.c_name = cname;
+        def->base.c_name = eina_stringshare_ref(cname);
         eo_lexer_dtor_pop(ls);
      }
    else
@@ -2263,7 +2261,7 @@ tags_done:
    ls->klass->base.name = eina_stringshare_add(eina_strbuf_string_get(buf));
    if (cname)
      {
-        ls->klass->base.c_name = cname;
+        ls->klass->base.c_name = eina_stringshare_ref(cname);
         eo_lexer_dtor_pop(ls);
      }
    else
@@ -2490,7 +2488,7 @@ postparams:
                   }
                 def->base.name = name;
                 if (cname)
-                  def->base.c_name = cname;
+                  def->base.c_name = eina_stringshare_ref(cname);
                 /* we can't know the order, pop when both are filled */
                 if (freefunc && cname)
                   {

-- 


Reply via email to