q66 pushed a commit to branch master.

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

commit b69b90832f5c80bb3df29fb94593b315d0d75197
Author: Daniel Kolesa <[email protected]>
Date:   Wed Aug 27 15:38:28 2014 +0100

    eolian: remove constructors section cruft
---
 src/bin/eolian_cxx/convert.cc          |  5 ++++-
 src/bin/eolian_cxx/eolian_wrappers.hh  |  3 ++-
 src/lib/eolian/Eolian.h                |  3 +--
 src/lib/eolian/database_class.c        |  1 -
 src/lib/eolian/database_class_api.c    | 11 -----------
 src/lib/eolian/database_fill.c         | 33 ---------------------------------
 src/lib/eolian/database_function_api.c | 16 ++++++++--------
 src/lib/eolian/database_print.c        | 24 ------------------------
 src/lib/eolian/database_validate.c     |  4 ----
 src/lib/eolian/eo_definitions.c        |  3 ---
 src/lib/eolian/eo_definitions.h        |  1 -
 src/lib/eolian/eo_lexer.h              | 15 +++++++--------
 src/lib/eolian/eo_parser.c             | 34 +++++++---------------------------
 src/lib/eolian/eolian_database.h       |  1 -
 14 files changed, 29 insertions(+), 125 deletions(-)

diff --git a/src/bin/eolian_cxx/convert.cc b/src/bin/eolian_cxx/convert.cc
index 3f20f73..56f2c06 100644
--- a/src/bin/eolian_cxx/convert.cc
+++ b/src/bin/eolian_cxx/convert.cc
@@ -212,7 +212,8 @@ convert_eolian_implements(efl::eolian::eo_class& cls, 
Eolian_Class const& klass)
         const Eolian_Class *impl_class = eolian_implement_class_get(impl_desc);
         Eolian_Function_Type impl_type;
         const Eolian_Function *impl_func = 
eolian_implement_function_get(impl_desc, &impl_type);
-        if (impl_type == EOLIAN_CTOR)
+        /* fixme */
+        if (eolian_function_is_constructing(impl_func))
           {
              efl::eolian::eo_constructor constructor;
              std::string parent = 
safe_lower(eolian_class_full_name_get(impl_class));
@@ -236,6 +237,7 @@ convert_eolian_constructors(efl::eolian::eo_class& cls, 
Eolian_Class const& klas
    EINA_ITERATOR_FOREACH(constructors, curr)
      {
         Eolian_Function *eo_constructor = static_cast<Eolian_Function*>(curr);
+        /* fixme */
         if (!eolian_function_is_constructing(eo_constructor))
           continue;
         efl::eolian::eo_constructor constructor;
@@ -258,6 +260,7 @@ convert_eolian_functions(efl::eolian::eo_class& cls, 
Eolian_Class const& klass)
      {
         efl::eolian::eo_function func_;
         Eolian_Function *eol_func = static_cast<Eolian_Function*>(curr);
+        /* fixme */
         if (eolian_function_is_constructing(eol_func))
           continue;
         // XXX Eolian only provides regular methods so far
diff --git a/src/bin/eolian_cxx/eolian_wrappers.hh 
b/src/bin/eolian_cxx/eolian_wrappers.hh
index 5912c3e..fc8e808 100644
--- a/src/bin/eolian_cxx/eolian_wrappers.hh
+++ b/src/bin/eolian_cxx/eolian_wrappers.hh
@@ -25,7 +25,8 @@ getter_t const getter = {};
 struct method_t { static constexpr ::Eolian_Function_Type value = 
::EOLIAN_METHOD; };
 method_t const method = {};
 
-struct ctor_t { static constexpr ::Eolian_Function_Type value = ::EOLIAN_CTOR; 
};
+/* fixme */
+struct ctor_t { static constexpr ::Eolian_Function_Type value = 
::EOLIAN_METHOD; };
 ctor_t const ctor = {};
 
 inline const Eolian_Class*
diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index 84fb1d1..43fdc6b 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -104,8 +104,7 @@ typedef enum
    EOLIAN_PROPERTY,
    EOLIAN_PROP_SET,
    EOLIAN_PROP_GET,
-   EOLIAN_METHOD,
-   EOLIAN_CTOR
+   EOLIAN_METHOD
 } Eolian_Function_Type;
 
 typedef enum
diff --git a/src/lib/eolian/database_class.c b/src/lib/eolian/database_class.c
index a8e31ed..79999a9 100644
--- a/src/lib/eolian/database_class.c
+++ b/src/lib/eolian/database_class.c
@@ -23,7 +23,6 @@ database_class_del(Eolian_Class *cl)
         free(impl);
      }
 
-   EINA_LIST_FREE(cl->constructors, fid) database_function_del(fid);
    EINA_LIST_FREE(cl->methods, fid) database_function_del(fid);
    EINA_LIST_FREE(cl->properties, fid) database_function_del(fid);
    EINA_LIST_FREE(cl->events, ev) database_event_del(ev);
diff --git a/src/lib/eolian/database_class_api.c 
b/src/lib/eolian/database_class_api.c
index 2b78518..d624c27 100644
--- a/src/lib/eolian/database_class_api.c
+++ b/src/lib/eolian/database_class_api.c
@@ -125,15 +125,6 @@ eolian_class_function_get_by_name(const Eolian_Class *cl, 
const char *func_name,
           }
      }
 
-   if (f_type == EOLIAN_UNRESOLVED || f_type == EOLIAN_CTOR)
-     {
-        EINA_LIST_FOREACH(cl->constructors, itr, fid)
-          {
-             if (!strcmp(fid->name, func_name))
-                return fid;
-          }
-     }
-
    ERR("Function %s not found in class %s", func_name, cl->name);
    return NULL;
 }
@@ -148,8 +139,6 @@ eolian_class_functions_get(const Eolian_Class *cl, 
Eolian_Function_Type foo_type
          return (cl->properties ? eina_list_iterator_new(cl->properties) : 
NULL);
       case EOLIAN_METHOD:
          return (cl->methods ? eina_list_iterator_new(cl->methods) : NULL);
-      case EOLIAN_CTOR:
-         return (cl->constructors ? eina_list_iterator_new(cl->constructors) : 
NULL);
       default: return NULL;
      }
 }
diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c
index fce6f94..6210fc2 100644
--- a/src/lib/eolian/database_fill.c
+++ b/src/lib/eolian/database_fill.c
@@ -225,38 +225,6 @@ _db_fill_methods(Eolian_Class *cl, Eo_Class_Def *kls)
    return EINA_TRUE;
 }
 
-static Eina_Bool
-_db_fill_ctor(Eolian_Class *cl, Eo_Method_Def *meth)
-{
-   Eolian_Function *foo_id = database_function_new(meth->name, EOLIAN_CTOR);
-
-   cl->constructors = eina_list_append(cl->constructors, foo_id);
-
-   if (meth->ret)
-     foo_id->get_return_comment = eina_stringshare_ref(meth->ret->comment);
-
-   foo_id->get_legacy = eina_stringshare_ref(meth->legacy);
-
-   _db_fill_params(meth->params, &(foo_id->params));
-
-   foo_id->base = meth->base;
-   meth->base.file = NULL;
-
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_db_fill_ctors(Eolian_Class *cl, Eo_Class_Def *kls)
-{
-   Eo_Method_Def *meth;
-   Eina_List *l;
-
-   EINA_LIST_FOREACH(kls->constructors, l, meth)
-     if (!_db_fill_ctor(cl, meth)) return EINA_FALSE;
-
-   return EINA_TRUE;
-}
-
 static int
 _db_fill_implement(Eolian_Class *cl, Eolian_Implement *impl)
 {
@@ -371,7 +339,6 @@ _db_fill_class(Eo_Class_Def *kls)
    if (kls->data_type)
      cl->data_type = eina_stringshare_ref(kls->data_type);
 
-   if (!_db_fill_ctors     (cl, kls)) return EINA_FALSE;
    if (!_db_fill_properties(cl, kls)) return EINA_FALSE;
    if (!_db_fill_methods   (cl, kls)) return EINA_FALSE;
    if (!_db_fill_implements(cl, kls)) return EINA_FALSE;
diff --git a/src/lib/eolian/database_function_api.c 
b/src/lib/eolian/database_function_api.c
index c5156a0..ecd1853 100644
--- a/src/lib/eolian/database_function_api.c
+++ b/src/lib/eolian/database_function_api.c
@@ -62,7 +62,7 @@ eolian_function_legacy_get(const Eolian_Function *fid, 
Eolian_Function_Type ftyp
    EINA_SAFETY_ON_NULL_RETURN_VAL(fid, NULL);
    switch (ftype)
      {
-      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROPERTY: case 
EOLIAN_CTOR: case EOLIAN_PROP_GET: return fid->get_legacy; break;
+      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROPERTY: case 
EOLIAN_PROP_GET: return fid->get_legacy; break;
       case EOLIAN_PROP_SET: return fid->set_legacy; break;
       default: return NULL;
      }
@@ -74,7 +74,7 @@ eolian_function_description_get(const Eolian_Function *fid, 
Eolian_Function_Type
    EINA_SAFETY_ON_NULL_RETURN_VAL(fid, NULL);
    switch (ftype)
      {
-      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROPERTY: case 
EOLIAN_CTOR: case EOLIAN_PROP_GET: return fid->get_description; break;
+      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROPERTY: case 
EOLIAN_PROP_GET: return fid->get_description; break;
       case EOLIAN_PROP_SET: return fid->set_description; break;
       default: return NULL;
      }
@@ -86,7 +86,7 @@ eolian_function_is_virtual_pure(const Eolian_Function *fid, 
Eolian_Function_Type
    EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE);
    switch (ftype)
      {
-      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROPERTY: case 
EOLIAN_CTOR: case EOLIAN_PROP_GET: return fid->get_virtual_pure; break;
+      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROPERTY: case 
EOLIAN_PROP_GET: return fid->get_virtual_pure; break;
       case EOLIAN_PROP_SET: return fid->set_virtual_pure; break;
       default: return EINA_FALSE;
      }
@@ -98,7 +98,7 @@ eolian_function_is_legacy_only(const Eolian_Function *fid, 
Eolian_Function_Type
    EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE);
    switch (ftype)
      {
-      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROPERTY: case 
EOLIAN_CTOR: case EOLIAN_PROP_GET: return fid->get_only_legacy; break;
+      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROPERTY: case 
EOLIAN_PROP_GET: return fid->get_only_legacy; break;
       case EOLIAN_PROP_SET: return fid->set_only_legacy; break;
       default: return EINA_FALSE;
      }
@@ -157,7 +157,7 @@ eolian_function_return_type_get(const Eolian_Function *fid, 
Eolian_Function_Type
    switch (ftype)
      {
       case EOLIAN_PROP_SET: return fid->set_ret_type;
-      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_CTOR: case 
EOLIAN_PROP_GET: return fid->get_ret_type;
+      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROP_GET: return 
fid->get_ret_type;
       default: return NULL;
      }
 }
@@ -168,7 +168,7 @@ eolian_function_return_default_value_get(const 
Eolian_Function *fid, Eolian_Func
    switch (ftype)
      {
       case EOLIAN_PROP_SET: return fid->set_ret_val;
-      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_CTOR: case 
EOLIAN_PROPERTY: case EOLIAN_PROP_GET: return fid->get_ret_val;
+      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROPERTY: case 
EOLIAN_PROP_GET: return fid->get_ret_val;
       default: return NULL;
      }
 }
@@ -179,7 +179,7 @@ eolian_function_return_comment_get(const Eolian_Function 
*fid, Eolian_Function_T
    switch (ftype)
      {
       case EOLIAN_PROP_SET: return fid->set_return_comment; break;
-      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_CTOR: case 
EOLIAN_PROPERTY: case EOLIAN_PROP_GET: return fid->get_return_comment; break;
+      case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROPERTY: case 
EOLIAN_PROP_GET: return fid->get_return_comment; break;
       default: return NULL;
      }
 }
@@ -191,7 +191,7 @@ eolian_function_return_is_warn_unused(const Eolian_Function 
*fid,
    EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE);
    switch (ftype)
      {
-      case EOLIAN_METHOD: case EOLIAN_PROP_GET: case EOLIAN_CTOR: case 
EOLIAN_PROPERTY: return fid->get_return_warn_unused;
+      case EOLIAN_METHOD: case EOLIAN_PROP_GET: case EOLIAN_PROPERTY: return 
fid->get_return_warn_unused;
       case EOLIAN_PROP_SET: return fid->set_return_warn_unused;
       default: return EINA_FALSE;
      }
diff --git a/src/lib/eolian/database_print.c b/src/lib/eolian/database_print.c
index a1fd411..ef48abe 100644
--- a/src/lib/eolian/database_print.c
+++ b/src/lib/eolian/database_print.c
@@ -117,22 +117,6 @@ static Eina_Bool _function_print(const Eolian_Function 
*fid, int nb_spaces)
               if (fid->obj_is_const) printf("%*sobj const: <true>\n", 
nb_spaces + 5, "");
               break;
            }
-      case EOLIAN_CTOR:
-           {
-              //char *str = eina_hash_find(fid->data, "comment");
-              const char *str = eolian_function_description_get(fid, 
EOLIAN_METHOD);
-              if (str) printf("%*s<%s>\n", nb_spaces + 5, "", str);
-              str = eolian_function_legacy_get(fid, EOLIAN_METHOD);
-              if (str) printf("%*slegacy: <%s>\n", nb_spaces + 5, "", str);
-              tp = eolian_function_return_type_get(fid, EOLIAN_METHOD);
-              if (tp)
-                {
-                   printf("%*sreturn type: <", nb_spaces + 5, "");
-                   database_type_print((Eolian_Type*)tp);
-                   printf(">\n");
-                }
-              break;
-           }
       default:
          return EINA_FALSE;
      }
@@ -202,14 +186,6 @@ _class_print(const Eolian_Class *cl)
         printf("  Data type: <%s>\n", cl->data_type);
      }
 
-   // Constructors
-   printf("  constructors:\n");
-   EINA_LIST_FOREACH(cl->constructors, itr, function)
-     {
-        _function_print(function, 4);
-     }
-   printf("\n");
-
    // Properties
    printf("  properties:\n");
    EINA_LIST_FOREACH(cl->properties, itr, function)
diff --git a/src/lib/eolian/database_validate.c 
b/src/lib/eolian/database_validate.c
index 02f9caa..25251cb 100644
--- a/src/lib/eolian/database_validate.c
+++ b/src/lib/eolian/database_validate.c
@@ -201,10 +201,6 @@ _validate_class(const Eolian_Class *cl)
      if (!_validate_function(func))
        return EINA_FALSE;
 
-   EINA_LIST_FOREACH(cl->constructors, l, func)
-     if (!_validate_function(func))
-       return EINA_FALSE;
-
    EINA_LIST_FOREACH(cl->events, l, event)
      if (!_validate_event(event))
        return EINA_FALSE;
diff --git a/src/lib/eolian/eo_definitions.c b/src/lib/eolian/eo_definitions.c
index fd03c24..34cd5bf 100644
--- a/src/lib/eolian/eo_definitions.c
+++ b/src/lib/eolian/eo_definitions.c
@@ -128,9 +128,6 @@ eo_definitions_class_def_free(Eo_Class_Def *kls)
    EINA_LIST_FREE(kls->implements, impl)
      database_implement_del(impl);
 
-   EINA_LIST_FREE(kls->constructors, meth)
-     eo_definitions_method_def_free(meth);
-
    EINA_LIST_FREE(kls->properties, prop)
      eo_definitions_property_def_free(prop);
 
diff --git a/src/lib/eolian/eo_definitions.h b/src/lib/eolian/eo_definitions.h
index 68ee833..ad50484 100644
--- a/src/lib/eolian/eo_definitions.h
+++ b/src/lib/eolian/eo_definitions.h
@@ -99,7 +99,6 @@ typedef struct _Eo_Class_Def
    Eina_List *inherits;
    Eina_List *implements;
    Eina_List *events;
-   Eina_List *constructors;
    Eina_List *properties;
    Eina_List *methods;
 } Eo_Class_Def;
diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h
index 9d608ef..5530178 100644
--- a/src/lib/eolian/eo_lexer.h
+++ b/src/lib/eolian/eo_lexer.h
@@ -24,14 +24,13 @@ enum Tokens
 #define KEYWORDS KW(class), KW(const), KW(enum), KW(return), KW(struct), \
     KW(virtual), \
     \
-    KW(abstract), KW(constructor), KW(constructors), KW(data), \
-    KW(destructor), KW(eo), KW(eo_prefix), KW(events), KW(free), KW(func), \
-    KW(get), KW(implements), KW(interface), KW(keys), KW(legacy), \
-    KW(legacy_prefix), KW(methods), KW(mixin), KW(own), KW(params), \
-    KW(properties), KW(set), KW(type), KW(values), KW(var), KWAT(class), \
-    KWAT(const), KWAT(constructor), KWAT(extern), KWAT(free), KWAT(in), \
-    KWAT(inout), KWAT(nonull), KWAT(out), KWAT(private), KWAT(protected), \
-    KWAT(warn_unused), \
+    KW(abstract), KW(constructor), KW(data), KW(destructor), KW(eo), \
+    KW(eo_prefix), KW(events), KW(free), KW(func), KW(get), KW(implements), \
+    KW(interface), KW(keys), KW(legacy), KW(legacy_prefix), KW(methods), \
+    KW(mixin), KW(own), KW(params), KW(properties), KW(set), KW(type), \
+    KW(values), KW(var), KWAT(class), KWAT(const), KWAT(constructor), \
+    KWAT(extern), KWAT(free), KWAT(in), KWAT(inout), KWAT(nonull), KWAT(out), \
+    KWAT(private), KWAT(protected), KWAT(warn_unused), \
     \
     KW(byte), KW(ubyte), KW(char), KW(short), KW(ushort), KW(int), KW(uint), \
     KW(long), KW(ulong), KW(llong), KW(ullong), \
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 1894129..76f0cf5 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -1620,19 +1620,6 @@ parse_event(Eo_Lexer *ls)
 }
 
 static void
-parse_constructors(Eo_Lexer *ls)
-{
-   PARSE_SECTION
-     {
-        parse_method(ls, EINA_TRUE);
-        ls->tmp.kls->constructors = eina_list_append(ls->tmp.kls->constructors,
-                                                     ls->tmp.meth);
-        ls->tmp.meth = NULL;
-     }
-   check_match(ls, '}', '{', line, col);
-}
-
-static void
 parse_methods(Eo_Lexer *ls)
 {
    PARSE_SECTION
@@ -1691,12 +1678,11 @@ parse_events(Eo_Lexer *ls)
 }
 
 static void
-parse_class_body(Eo_Lexer *ls, Eina_Bool allow_ctors, Eolian_Class_Type type)
+parse_class_body(Eo_Lexer *ls, Eolian_Class_Type type)
 {
    Eina_Bool has_legacy_prefix = EINA_FALSE,
              has_eo_prefix     = EINA_FALSE,
              has_data          = EINA_FALSE,
-             has_constructors  = EINA_FALSE,
              has_properties    = EINA_FALSE,
              has_methods       = EINA_FALSE,
              has_implements    = EINA_FALSE,
@@ -1740,12 +1726,6 @@ parse_class_body(Eo_Lexer *ls, Eina_Bool allow_ctors, 
Eolian_Class_Type type)
         eo_lexer_get(ls);
         check_next(ls, ';');
         break;
-      case KW_constructors:
-        if (!allow_ctors)
-          return;
-        CASE_LOCK(ls, constructors, "constructors definition")
-        parse_constructors(ls);
-        break;
       case KW_properties:
         CASE_LOCK(ls, properties, "properties definition")
         parse_properties(ls);
@@ -1768,7 +1748,7 @@ parse_class_body(Eo_Lexer *ls, Eina_Bool allow_ctors, 
Eolian_Class_Type type)
 }
 
 static void
-parse_class(Eo_Lexer *ls, Eina_Bool allow_ctors, Eolian_Class_Type type)
+parse_class(Eo_Lexer *ls, Eolian_Class_Type type)
 {
    const char *bnm;
    char *fnm;
@@ -1811,7 +1791,7 @@ parse_class(Eo_Lexer *ls, Eina_Bool allow_ctors, 
Eolian_Class_Type type)
    line = ls->line_number;
    col = ls->column;
    check_next(ls, '{');
-   parse_class_body(ls, allow_ctors, type);
+   parse_class_body(ls, type);
    check_match(ls, '}', '{', line, col);
 }
 
@@ -1822,19 +1802,19 @@ parse_unit(Eo_Lexer *ls, Eina_Bool eot)
      {
       case KW_abstract:
         if (eot) goto def;
-        parse_class(ls, EINA_TRUE, EOLIAN_CLASS_ABSTRACT);
+        parse_class(ls, EOLIAN_CLASS_ABSTRACT);
         goto found_class;
       case KW_class:
         if (eot) goto def;
-        parse_class(ls, EINA_TRUE, EOLIAN_CLASS_REGULAR);
+        parse_class(ls, EOLIAN_CLASS_REGULAR);
         goto found_class;
       case KW_mixin:
         if (eot) goto def;
-        parse_class(ls, EINA_FALSE, EOLIAN_CLASS_MIXIN);
+        parse_class(ls, EOLIAN_CLASS_MIXIN);
         goto found_class;
       case KW_interface:
         if (eot) goto def;
-        parse_class(ls, EINA_FALSE, EOLIAN_CLASS_INTERFACE);
+        parse_class(ls, EOLIAN_CLASS_INTERFACE);
         goto found_class;
       case KW_type:
         {
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index 29cb69e..ae30521 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -77,7 +77,6 @@ struct _Eolian_Class
    Eina_List *inherits; /* List Eina_Stringshare * */
    Eina_List *properties; /* List prop_name -> Eolian_Function */
    Eina_List *methods; /* List meth_name -> Eolian_Function */
-   Eina_List *constructors; /* List constructor_name -> Eolian_Function */
    Eina_List *implements; /* List implements name -> Eolian_Implement */
    Eina_List *events; /* List event_name -> Eolian_Event */
    Eina_Bool class_ctor_enable:1;

-- 


Reply via email to