summaryrefslogtreecommitdiff
path: root/src/bin/eolian
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@samsung.com>2014-09-04 14:29:33 +0100
committerDaniel Kolesa <d.kolesa@samsung.com>2014-09-04 15:03:00 +0100
commite75ded5e3fd28a9a5f450a22dbb279f2b723d61d (patch)
tree57014ea3deb99cadc1f56e890b4ade79f3033432 /src/bin/eolian
parentdebb51e5df59e0e55b087a150dfc3f01cab33013 (diff)
eolian: prepare for implements list expansion
As the implements list will soon contain all methods and properties, do some preparations. The Eolian library now fills in class field in implements early on when the implement is local. The Eolian C generator now checks for local implements and skips them (so that things don't break).
Diffstat (limited to 'src/bin/eolian')
-rw-r--r--src/bin/eolian/eo_generator.c2
-rw-r--r--src/bin/eolian/impl_generator.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c
index ce1d0ad52c..20f69a0b19 100644
--- a/src/bin/eolian/eo_generator.c
+++ b/src/bin/eolian/eo_generator.c
@@ -726,6 +726,8 @@ eo_source_end_generate(const Eolian_Class *class, Eina_Strbuf *buf)
726 726
727 if ((impl_class = eolian_implement_class_get(impl_desc))) 727 if ((impl_class = eolian_implement_class_get(impl_desc)))
728 { 728 {
729 if (impl_class == class)
730 continue;
729 fnid = eolian_implement_function_get(impl_desc, &ftype); 731 fnid = eolian_implement_function_get(impl_desc, &ftype);
730 _class_env_create(impl_class, NULL, &impl_env); 732 _class_env_create(impl_class, NULL, &impl_env);
731 funcname = eolian_function_name_get(fnid); 733 funcname = eolian_function_name_get(fnid);
diff --git a/src/bin/eolian/impl_generator.c b/src/bin/eolian/impl_generator.c
index c91ca42d56..645982d3c4 100644
--- a/src/bin/eolian/impl_generator.c
+++ b/src/bin/eolian/impl_generator.c
@@ -280,6 +280,9 @@ impl_source_generate(const Eolian_Class *class, Eina_Strbuf *buffer)
280 EINA_ITERATOR_FOREACH(itr, impl_desc) 280 EINA_ITERATOR_FOREACH(itr, impl_desc)
281 { 281 {
282 Eolian_Function_Type ftype; 282 Eolian_Function_Type ftype;
283 const Eolian_Class *cl = eolian_implement_class_get(impl_desc);
284 if (cl == class)
285 continue;
283 if (!(foo = eolian_implement_function_get(impl_desc, &ftype))) 286 if (!(foo = eolian_implement_function_get(impl_desc, &ftype)))
284 { 287 {
285 const char *name = names[eolian_implement_is_prop_get(impl_desc) 288 const char *name = names[eolian_implement_is_prop_get(impl_desc)