summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@samsung.com>2020-01-10 20:02:41 +0100
committerDaniel Kolesa <d.kolesa@samsung.com>2020-01-10 20:19:47 +0100
commit918987ef8aa3b5a5ae145530d23d6857b771f32f (patch)
treee0c61bfbcf3754c9c7a6ef8346d9462be1b994d9
parente55f0a1dcfdc36690cb43301a4cf5a3b6227a33c (diff)
downloadefl-918987ef8aa3b5a5ae145530d23d6857b771f32f.tar.gz
eolian: fix parsing of c_name tags
It was not properly consuming the ending ) token.
-rw-r--r--src/lib/eolian/eo_parser.c18
1 files 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)
{