q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=58a6895e41fb0b607705c2ba77b2ad5e244ba74b

commit 58a6895e41fb0b607705c2ba77b2ad5e244ba74b
Author: Daniel Kolesa <[email protected]>
Date:   Mon Jul 7 15:14:00 2014 +0100

    eolian: do not use string for attrs
---
 src/lib/eolian/eo_definitions.c |  1 -
 src/lib/eolian/eo_definitions.h |  2 +-
 src/lib/eolian/eo_parser.c      | 30 +++++-------------------------
 3 files changed, 6 insertions(+), 27 deletions(-)

diff --git a/src/lib/eolian/eo_definitions.c b/src/lib/eolian/eo_definitions.c
index 89e89e5..7ce36ea 100644
--- a/src/lib/eolian/eo_definitions.c
+++ b/src/lib/eolian/eo_definitions.c
@@ -38,7 +38,6 @@ static void
 eo_definitions_accessor_param_free(Eo_Accessor_Param *param)
 {
    if (param->name) eina_stringshare_del(param->name);
-   if (param->attrs) eina_stringshare_del(param->attrs);
    free(param);
 }
 
diff --git a/src/lib/eolian/eo_definitions.h b/src/lib/eolian/eo_definitions.h
index d5d3a68..5b97802 100644
--- a/src/lib/eolian/eo_definitions.h
+++ b/src/lib/eolian/eo_definitions.h
@@ -64,7 +64,7 @@ typedef enum _eo_accessor_type
 typedef struct _eo_accessor_param
 {
    const char *name;
-   const char *attrs;
+   Eina_Bool is_const:1;
 } Eo_Accessor_Param;
 
 typedef struct _eo_accessor_def
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index bfab882..12d2b67 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -383,47 +383,27 @@ parse_legacy(Eo_Lexer *ls)
 static void
 parse_attrs(Eo_Lexer *ls)
 {
-   Eina_Strbuf *buf = NULL;
    Eo_Accessor_Param *acc = NULL;
-   Eina_Bool has_const  = EINA_FALSE, has_own = EINA_FALSE,
-             has_nonull = EINA_FALSE, first   = EINA_TRUE;
+   Eina_Bool has_const = EINA_FALSE;
    acc = calloc(1, sizeof(Eo_Accessor_Param));
    ls->tmp.accessor_param = acc;
    acc->name = eina_stringshare_add(ls->t.value);
    eo_lexer_get(ls);
    check_next(ls, ':');
    check(ls, TOK_VALUE);
-   buf = push_strbuf(ls);
    for (;;) switch (ls->t.kw)
      {
       case KW_const:
         CASE_LOCK(ls, const, "const qualifier")
-        if (!first) eina_strbuf_append_char(buf, ' ');
-        eina_strbuf_append(buf, "const");
-        first = EINA_FALSE;
-        eo_lexer_get(ls);
-        break;
-      case KW_own:
-        CASE_LOCK(ls, own, "own qualifier")
-        if (!first) eina_strbuf_append_char(buf, ' ');
-        eina_strbuf_append(buf, "@own");
-        first = EINA_FALSE;
-        eo_lexer_get(ls);
-        break;
-      case KW_at_nonull:
-        CASE_LOCK(ls, nonull, "@nonull qualifier")
-        if (!first) eina_strbuf_append_char(buf, ' ');
-        eina_strbuf_append(buf, "@nonull");
-        first = EINA_FALSE;
+        acc->is_const = EINA_TRUE;
         eo_lexer_get(ls);
         break;
       default:
-        if (first) eo_lexer_syntax_error(ls, "attribute expected");
+        if (ls->t.token != ';')
+          eo_lexer_syntax_error(ls, "attribute expected");
         goto end;
      }
 end:
-   acc->attrs = eina_stringshare_add(eina_strbuf_string_get(buf));
-   pop_strbuf(ls);
    check_next(ls, ';');
 }
 
@@ -1240,7 +1220,7 @@ _db_fill_class(Eo_Class_Def *kls, const char *filename)
                        printf("Error - %s not known as parameter of property 
%s\n", acc_param->name, prop->name);
                     }
                   else
-                     if (strstr(acc_param->attrs, "const"))
+                     if (acc_param->is_const)
                        {
                           database_parameter_const_attribute_set(desc, 
accessor->type == GETTER, EINA_TRUE);
                        }

-- 


Reply via email to