q66 pushed a commit to branch master.

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

commit 883c4ca7df68507aaaad5d44bfa6896ed1a7ed49
Author: Daniel Kolesa <[email protected]>
Date:   Fri Jul 11 11:47:37 2014 +0100

    eolian: events now use Eolian_Type* instead of stringshare
---
 src/bin/eolian_cxx/eolian_wrappers.hh | 4 ++--
 src/lib/eolian/Eolian.h               | 3 ++-
 src/lib/eolian/database_event.c       | 2 +-
 src/lib/eolian/database_event_api.c   | 2 +-
 src/lib/eolian/database_print.c       | 7 +++++--
 src/lib/eolian/eo_parser.c            | 4 ++--
 src/lib/eolian/eolian_database.h      | 2 +-
 7 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/src/bin/eolian_cxx/eolian_wrappers.hh 
b/src/bin/eolian_cxx/eolian_wrappers.hh
index d44b3e5..e9a9ab9 100644
--- a/src/bin/eolian_cxx/eolian_wrappers.hh
+++ b/src/bin/eolian_cxx/eolian_wrappers.hh
@@ -310,8 +310,8 @@ inline efl::eolian::eo_event
 event_create(Eolian_Class const& klass, const Eolian_Event *event_)
 {
    efl::eolian::eo_event event;
-   const char *name, *type, *comment;
-   if(::eolian_class_event_information_get(event_, &name, &type, &comment))
+   const char *name, *comment;
+   if(::eolian_class_event_information_get(event_, &name, NULL, &comment))
      {
         std::string name_ = safe_str(name);
         std::transform(name_.begin(), name_.end(), name_.begin(),
diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index fa4ee7b..764a16e 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -670,12 +670,13 @@ EAPI const Eina_List *eolian_class_events_list_get(const 
Eolian_Class *klass);
  *
  * @param[in] event handle of the event
  * @param[out] event_name name of the event
+ * @param[out] event_type type of the event
  * @param[out] event_desc description of the event
  * @return EINA_TRUE on success, EINA_FALSE otherwise.
  *
  * @ingroup Eolian
  */
-EAPI Eina_Bool eolian_class_event_information_get(const Eolian_Event *event, 
const char **event_name, const char **event_type, const char **event_desc);
+EAPI Eina_Bool eolian_class_event_information_get(const Eolian_Event *event, 
const char **event_name, const Eolian_Type **event_type, const char 
**event_desc);
 
 /*
  * @brief Indicates if the class constructor has to invoke
diff --git a/src/lib/eolian/database_event.c b/src/lib/eolian/database_event.c
index f51a408..8549c1e 100644
--- a/src/lib/eolian/database_event.c
+++ b/src/lib/eolian/database_event.c
@@ -6,7 +6,7 @@ database_event_del(Eolian_Event *event)
 {
    if (!event) return;
    if (event->name) eina_stringshare_del(event->name);
-   if (event->type) eina_stringshare_del(event->type);
    if (event->comment) eina_stringshare_del(event->comment);
+   database_type_del(event->type);
    free(event);
 }
diff --git a/src/lib/eolian/database_event_api.c 
b/src/lib/eolian/database_event_api.c
index 5a184ff..520ef93 100644
--- a/src/lib/eolian/database_event_api.c
+++ b/src/lib/eolian/database_event_api.c
@@ -2,7 +2,7 @@
 #include "eolian_database.h"
 
 EAPI Eina_Bool
-eolian_class_event_information_get(const Eolian_Event *event, const char 
**event_name, const char **event_type, const char **event_comment)
+eolian_class_event_information_get(const Eolian_Event *event, const char 
**event_name, const Eolian_Type **event_type, const char **event_comment)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(event, EINA_FALSE);
    if (event_name) *event_name = event->name;
diff --git a/src/lib/eolian/database_print.c b/src/lib/eolian/database_print.c
index aef936b..2d66460 100644
--- a/src/lib/eolian/database_print.c
+++ b/src/lib/eolian/database_print.c
@@ -29,10 +29,13 @@ _implements_print(Eolian_Implement *impl, int nb_spaces)
 static void
 _event_print(Eolian_Event *ev, int nb_spaces)
 {
-   const char *name, *comment, *type;
+   const char *name, *comment;
+   const Eolian_Type *type;
 
    eolian_class_event_information_get(ev, &name, &type, &comment);
-   printf("%*s <%s> <%s> <%s>\n", nb_spaces + 5, "", name, type, comment);
+   printf("%*s <%s> <",  nb_spaces + 5, "", name);
+   database_type_print((Eolian_Type*)type);
+   printf("> <%s>\n", comment);
 }
 
 static Eina_Bool _function_print(const Eolian_Function *fid, int nb_spaces)
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 8bcf1a8..9c8649d 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -808,9 +808,9 @@ parse_event(Eo_Lexer *ls)
    if (ls->t.token == '(')
      {
         int line = ls->line_number, col = ls->column;
-        eo_lexer_get_balanced(ls, '(', ')');
-        ev->type = eina_stringshare_add(ls->t.value);
         eo_lexer_get(ls);
+        ev->type = parse_type(ls);
+        pop_type(ls);
         check_match(ls, ')', '(', line, col);
      }
    check(ls, ';');
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index bd14647..f208138 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -130,8 +130,8 @@ struct _Eolian_Implement
 struct _Eolian_Event
 {
    Eina_Stringshare *name;
-   Eina_Stringshare *type;
    Eina_Stringshare *comment;
+   Eolian_Type *type;
 };
 
 typedef struct _Eolian_Typedef

-- 


Reply via email to