summaryrefslogtreecommitdiff
path: root/src/bin/eolian
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@samsung.com>2014-08-13 13:09:03 +0100
committerDaniel Kolesa <d.kolesa@samsung.com>2014-08-21 09:26:04 +0100
commitad3dbe834b01ecb4381a8c26548be418600dbbb6 (patch)
tree21e9127a6824ffcd9143dedadbf7075afc443f1c /src/bin/eolian
parent057e01d67fdcbb715580a4e34af52f09de4e0e29 (diff)
eolian: API refactoring
Remove eolian_implement_information_get. Also, fix some nasty lookup problems.
Diffstat (limited to 'src/bin/eolian')
-rw-r--r--src/bin/eolian/eo_generator.c3
-rw-r--r--src/bin/eolian/impl_generator.c12
2 files changed, 4 insertions, 11 deletions
diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c
index 3e34e24bf0..438c0f878f 100644
--- a/src/bin/eolian/eo_generator.c
+++ b/src/bin/eolian/eo_generator.c
@@ -667,8 +667,9 @@ eo_source_end_generate(const Eolian_Class *class, Eina_Strbuf *buf)
667 const char *rets; 667 const char *rets;
668 char *tp = implname; 668 char *tp = implname;
669 669
670 if (eolian_implement_information_get(impl_desc, &impl_class, &fnid, &ftype)) 670 if ((impl_class = eolian_implement_class_get(impl_desc)))
671 { 671 {
672 fnid = eolian_implement_function_get(impl_desc, &ftype);
672 _class_env_create(impl_class, NULL, &impl_env); 673 _class_env_create(impl_class, NULL, &impl_env);
673 funcname = eolian_function_name_get(fnid); 674 funcname = eolian_function_name_get(fnid);
674 675
diff --git a/src/bin/eolian/impl_generator.c b/src/bin/eolian/impl_generator.c
index 483b53156d..3e5f1f99db 100644
--- a/src/bin/eolian/impl_generator.c
+++ b/src/bin/eolian/impl_generator.c
@@ -131,11 +131,7 @@ _prototype_generate(const Eolian_Function *foo, Eolian_Function_Type ftype, Eina
131 super_invok = eina_strbuf_new(); 131 super_invok = eina_strbuf_new();
132 if (impl_desc) 132 if (impl_desc)
133 { 133 {
134 const Eolian_Class *impl_class; 134 _class_env_create(eolian_implement_class_get(impl_desc), NULL, &impl_env);
135 eolian_implement_information_get(impl_desc, &impl_class, NULL, NULL);
136
137 _class_env_create(impl_class, NULL, &impl_env);
138
139 char *tmp = impl_name; 135 char *tmp = impl_name;
140 sprintf(impl_name, "%s_%s", class_env.full_classname, impl_env.full_classname); 136 sprintf(impl_name, "%s_%s", class_env.full_classname, impl_env.full_classname);
141 eina_str_tolower(&tmp); 137 eina_str_tolower(&tmp);
@@ -303,12 +299,8 @@ impl_source_generate(const Eolian_Class *class, Eina_Strbuf *buffer)
303 Eolian_Implement *impl_desc; 299 Eolian_Implement *impl_desc;
304 EINA_ITERATOR_FOREACH(itr, impl_desc) 300 EINA_ITERATOR_FOREACH(itr, impl_desc)
305 { 301 {
306 const Eolian_Class *impl_class = NULL;
307 Eolian_Function_Type ftype; 302 Eolian_Function_Type ftype;
308 303 if (!(foo = eolian_implement_function_get(impl_desc, &ftype)))
309 foo = NULL;
310 eolian_implement_information_get(impl_desc, &impl_class, &foo, &ftype);
311 if (!foo)
312 { 304 {
313 ERR ("Failed to generate implementation of %s - missing form super class", 305 ERR ("Failed to generate implementation of %s - missing form super class",
314 eolian_implement_full_name_get(impl_desc)); 306 eolian_implement_full_name_get(impl_desc));