q66 pushed a commit to branch master.

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

commit 44d37bb368d6b1a78169caa4517f3fdb79dc47d3
Author: Daniel Kolesa <d.kol...@osg.samsung.com>
Date:   Tue May 12 17:23:42 2015 +0100

    eolian: do not check alias/struct/enum base for builtin types
---
 src/lib/eolian/database_type_api.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/lib/eolian/database_type_api.c 
b/src/lib/eolian/database_type_api.c
index 28ed9e5..5c301f2 100644
--- a/src/lib/eolian/database_type_api.c
+++ b/src/lib/eolian/database_type_api.c
@@ -4,6 +4,7 @@
 
 #include <Eina.h>
 #include "eolian_database.h"
+#include "eo_lexer.h"
 
 EAPI const Eolian_Type *
 eolian_type_alias_get_by_name(const char *name)
@@ -233,15 +234,20 @@ eolian_type_base_type_get(const Eolian_Type *tp)
      {
         /* for regular types, try looking up if it belongs to a struct,
          * enum or an alias... otherwise return NULL
+         * but first check for builtins
          */
-       Eolian_Type *rtp;
-       rtp = eina_hash_find(_aliases, tp->full_name);
-       if (rtp) return rtp;
-       rtp = eina_hash_find(_structs, tp->full_name);
-       if (rtp) return rtp;
-       rtp = eina_hash_find(_enums, tp->full_name);
-       if (rtp) return rtp;
-       return NULL;
+        int  kw = eo_lexer_keyword_str_to_id(tp->full_name);
+        if (!kw || kw < KW_byte || kw > KW_list)
+          {
+             Eolian_Type *rtp;
+             rtp = eina_hash_find(_aliases, tp->full_name);
+             if (rtp) return rtp;
+             rtp = eina_hash_find(_structs, tp->full_name);
+             if (rtp) return rtp;
+             rtp = eina_hash_find(_enums, tp->full_name);
+             if (rtp) return rtp;
+          }
+        return NULL;
      }
    return tp->base_type;
 }

-- 


Reply via email to