summaryrefslogtreecommitdiff
path: root/src/bin/eolian/eo1_generator.c
diff options
context:
space:
mode:
authorDaniel Zaoui <daniel.zaoui@samsung.com>2014-05-25 16:44:50 +0300
committerDaniel Zaoui <daniel.zaoui@samsung.com>2014-05-26 13:56:06 +0300
commita1e72dee0d56f05d4947b0a192f4e28b958556f8 (patch)
tree40511e2c3af6d6371d7a5d05bd4b8a3e5233f48c /src/bin/eolian/eo1_generator.c
parent8e4700ce65306d34079b40913eb8ab69ad99231d (diff)
Eolian/Generator: add support to namespaces.
The C generators now support namespaces generation.
Diffstat (limited to '')
-rw-r--r--src/bin/eolian/eo1_generator.c63
1 files changed, 34 insertions, 29 deletions
diff --git a/src/bin/eolian/eo1_generator.c b/src/bin/eolian/eo1_generator.c
index bae93c6502..f8924df217 100644
--- a/src/bin/eolian/eo1_generator.c
+++ b/src/bin/eolian/eo1_generator.c
@@ -132,8 +132,8 @@ eo_fundef_generate(const Eolian_Class class, Eolian_Function func, Eolian_Functi
132 Eina_Strbuf *str_func = eina_strbuf_new(); 132 Eina_Strbuf *str_func = eina_strbuf_new();
133 if (scope == EOLIAN_SCOPE_PROTECTED) 133 if (scope == EOLIAN_SCOPE_PROTECTED)
134 eina_strbuf_append_printf(str_func, "#ifdef %s_PROTECTED\n", capclass); 134 eina_strbuf_append_printf(str_func, "#ifdef %s_PROTECTED\n", capclass);
135 _template_fill(str_func, tmpl_eo_funcdef_doxygen, eolian_class_name_get(class), funcname, EINA_FALSE); 135 _template_fill(str_func, tmpl_eo_funcdef_doxygen, class, NULL, funcname, EINA_FALSE);
136 _template_fill(str_func, tmpl_eo_funcdef, eolian_class_name_get(class), funcname, EINA_FALSE); 136 _template_fill(str_func, tmpl_eo_funcdef, class, NULL, funcname, EINA_FALSE);
137 if (scope == EOLIAN_SCOPE_PROTECTED) 137 if (scope == EOLIAN_SCOPE_PROTECTED)
138 eina_strbuf_append_printf(str_func, "#endif\n"); 138 eina_strbuf_append_printf(str_func, "#endif\n");
139 eina_strbuf_append_printf(str_func, "\n"); 139 eina_strbuf_append_printf(str_func, "\n");
@@ -240,7 +240,6 @@ eo_header_generate(const Eolian_Class class, Eina_Strbuf *buf)
240 void *data; 240 void *data;
241 char *tmpstr = malloc(0x1FF); 241 char *tmpstr = malloc(0x1FF);
242 Eina_Strbuf * str_hdr = eina_strbuf_new(); 242 Eina_Strbuf * str_hdr = eina_strbuf_new();
243 const char *classname = eolian_class_name_get(class);
244 243
245 const char *desc = eolian_class_description_get(class); 244 const char *desc = eolian_class_description_get(class);
246 Eina_Strbuf *linedesc = eina_strbuf_new(); 245 Eina_Strbuf *linedesc = eina_strbuf_new();
@@ -256,7 +255,7 @@ eo_header_generate(const Eolian_Class class, Eina_Strbuf *buf)
256 eina_strbuf_append(buf, eina_strbuf_string_get(linedesc)); 255 eina_strbuf_append(buf, eina_strbuf_string_get(linedesc));
257 eina_strbuf_free(linedesc); 256 eina_strbuf_free(linedesc);
258 257
259 _template_fill(str_hdr, tmpl_eo_obj_header, classname, "", EINA_TRUE); 258 _template_fill(str_hdr, tmpl_eo_obj_header, class, NULL, "", EINA_TRUE);
260 259
261 eina_strbuf_replace_all(str_hdr, "@#EOPREFIX", current_eo_prefix_upper); 260 eina_strbuf_replace_all(str_hdr, "@#EOPREFIX", current_eo_prefix_upper);
262 eina_strbuf_replace_all(str_hdr, "@#eoprefix", current_eo_prefix_lower); 261 eina_strbuf_replace_all(str_hdr, "@#eoprefix", current_eo_prefix_lower);
@@ -280,7 +279,7 @@ eo_header_generate(const Eolian_Class class, Eina_Strbuf *buf)
280 eina_strbuf_prepend(tmpbuf," * "); 279 eina_strbuf_prepend(tmpbuf," * ");
281 eina_strbuf_append_printf(str_ev, "\n/**\n%s\n */\n", eina_strbuf_string_get(tmpbuf)); 280 eina_strbuf_append_printf(str_ev, "\n/**\n%s\n */\n", eina_strbuf_string_get(tmpbuf));
282 281
283 _template_fill(tmpbuf, "@#CLASS_EVENT_@#FUNC", classname, evname, EINA_TRUE); 282 _template_fill(tmpbuf, "@#CLASS_EVENT_@#FUNC", class, NULL, evname, EINA_TRUE);
284 eina_strbuf_replace_all(tmpbuf, ",", "_"); 283 eina_strbuf_replace_all(tmpbuf, ",", "_");
285 const char* s = eina_strbuf_string_get(tmpbuf); 284 const char* s = eina_strbuf_string_get(tmpbuf);
286 eina_strbuf_append_printf(str_ev, "#define %s (&(_%s))\n", s, s); 285 eina_strbuf_append_printf(str_ev, "#define %s (&(_%s))\n", s, s);
@@ -298,19 +297,19 @@ eo_header_generate(const Eolian_Class class, Eina_Strbuf *buf)
298 297
299 if (!prop_read && !prop_write) 298 if (!prop_read && !prop_write)
300 { 299 {
301 _template_fill(str_subid, tmpl_eo_subid, classname, funcname, EINA_FALSE); 300 _template_fill(str_subid, tmpl_eo_subid, class, NULL, funcname, EINA_FALSE);
302 eo_fundef_generate(class, (Eolian_Function)data, EOLIAN_UNRESOLVED, str_hdr); 301 eo_fundef_generate(class, (Eolian_Function)data, EOLIAN_UNRESOLVED, str_hdr);
303 } 302 }
304 if (prop_write) 303 if (prop_write)
305 { 304 {
306 sprintf(tmpstr, "%s_set", funcname); 305 sprintf(tmpstr, "%s_set", funcname);
307 _template_fill(str_subid, tmpl_eo_subid, classname, tmpstr, EINA_FALSE); 306 _template_fill(str_subid, tmpl_eo_subid, class, NULL, tmpstr, EINA_FALSE);
308 eo_fundef_generate(class, (Eolian_Function)data, EOLIAN_PROP_SET, str_hdr); 307 eo_fundef_generate(class, (Eolian_Function)data, EOLIAN_PROP_SET, str_hdr);
309 } 308 }
310 if (prop_read) 309 if (prop_read)
311 { 310 {
312 sprintf(tmpstr, "%s_get", funcname); 311 sprintf(tmpstr, "%s_get", funcname);
313 _template_fill(str_subid, tmpl_eo_subid, classname, tmpstr, EINA_FALSE); 312 _template_fill(str_subid, tmpl_eo_subid, class, NULL, tmpstr, EINA_FALSE);
314 eo_fundef_generate(class, (Eolian_Function)data, EOLIAN_PROP_GET, str_hdr); 313 eo_fundef_generate(class, (Eolian_Function)data, EOLIAN_PROP_GET, str_hdr);
315 } 314 }
316 eina_strbuf_replace_all(str_subid, "@#EOPREFIX", current_eo_prefix_upper); 315 eina_strbuf_replace_all(str_subid, "@#EOPREFIX", current_eo_prefix_upper);
@@ -341,10 +340,11 @@ eo_bind_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_F
341 const char *retname = NULL; 340 const char *retname = NULL;
342 Eina_Bool ret_const = EINA_FALSE; 341 Eina_Bool ret_const = EINA_FALSE;
343 Eina_Bool add_star = EINA_FALSE; 342 Eina_Bool add_star = EINA_FALSE;
344 const char *classname = eolian_class_name_get(class);
345 343
346 Eina_Bool need_implementation = EINA_TRUE; 344 Eina_Bool need_implementation = EINA_TRUE;
347 if (!impl_name && eolian_function_is_virtual_pure(funcid, ftype)) need_implementation = EINA_FALSE; 345 if (!impl_name && eolian_function_is_virtual_pure(funcid, ftype)) need_implementation = EINA_FALSE;
346 _class_func_names_fill(class, NULL, NULL);
347 char *classname = strdup(current_classname);
348 348
349 Eina_Strbuf *fbody = eina_strbuf_new(); 349 Eina_Strbuf *fbody = eina_strbuf_new();
350 Eina_Strbuf *va_args = eina_strbuf_new(); 350 Eina_Strbuf *va_args = eina_strbuf_new();
@@ -377,8 +377,8 @@ eo_bind_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_F
377 char tmpstr[0xFF]; 377 char tmpstr[0xFF];
378 sprintf (tmpstr, "%s%s", eolian_function_name_get(funcid), suffix); 378 sprintf (tmpstr, "%s%s", eolian_function_name_get(funcid), suffix);
379 char tmpstr2[0xFF]; 379 char tmpstr2[0xFF];
380 sprintf (tmpstr2, "%s_%s", classname, impl_name); 380 sprintf (tmpstr2, "%s_%s", lowclass, impl_name);
381 _class_func_names_fill(impl_name?tmpstr2:classname, tmpstr); 381 _class_func_names_fill(impl_name?NULL:class, impl_name?tmpstr2:NULL, tmpstr);
382 382
383 const Eina_List *l; 383 const Eina_List *l;
384 void *data; 384 void *data;
@@ -477,6 +477,7 @@ eo_bind_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_F
477 } 477 }
478 eina_strbuf_append(buf, eina_strbuf_string_get(fbody)); 478 eina_strbuf_append(buf, eina_strbuf_string_get(fbody));
479 479
480 free(classname);
480 eina_strbuf_free(va_args); 481 eina_strbuf_free(va_args);
481 eina_strbuf_free(full_params); 482 eina_strbuf_free(full_params);
482 eina_strbuf_free(params); 483 eina_strbuf_free(params);
@@ -488,9 +489,10 @@ static Eina_Bool
488eo_func_desc_generate(const Eolian_Class class, const char *impl_name, const char *func_name, Eina_Strbuf *buf) 489eo_func_desc_generate(const Eolian_Class class, const char *impl_name, const char *func_name, Eina_Strbuf *buf)
489{ 490{
490 if (impl_name) 491 if (impl_name)
491 _class_func_names_fill(impl_name, func_name); 492 _class_func_names_fill(NULL, impl_name, func_name);
492 else 493 else
493 _class_func_names_fill(eolian_class_name_get(class), func_name); 494 _class_func_names_fill(class, NULL, func_name);
495
494 eina_strbuf_reset(buf); 496 eina_strbuf_reset(buf);
495 eina_strbuf_append_printf(buf, 497 eina_strbuf_append_printf(buf,
496 "\n EO_OP_FUNC(%s_ID(%s_SUB_ID_%s), _eo_obj_%s%s%s_%s),", 498 "\n EO_OP_FUNC(%s_ID(%s_SUB_ID_%s), _eo_obj_%s%s%s_%s),",
@@ -508,7 +510,7 @@ eo_op_desc_generate(const Eolian_Class class, Eolian_Function fid, Eolian_Functi
508 const char *suffix = ""; 510 const char *suffix = "";
509 511
510 eina_strbuf_reset(buf); 512 eina_strbuf_reset(buf);
511 _class_func_names_fill(eolian_class_name_get(class), funcname); 513 _class_func_names_fill(class, NULL, funcname);
512 if (ftype == EOLIAN_PROP_GET) suffix = "_get"; 514 if (ftype == EOLIAN_PROP_GET) suffix = "_get";
513 if (ftype == EOLIAN_PROP_SET) suffix = "_set"; 515 if (ftype == EOLIAN_PROP_SET) suffix = "_set";
514 Eina_Bool is_virtual_pure = eolian_function_is_virtual_pure(fid, ftype); 516 Eina_Bool is_virtual_pure = eolian_function_is_virtual_pure(fid, ftype);
@@ -538,7 +540,7 @@ eo_source_beginning_generate(const Eolian_Class class, Eina_Strbuf *buf)
538 540
539 eolian_class_event_information_get(event, &evname, NULL, &evdesc); 541 eolian_class_event_information_get(event, &evname, NULL, &evdesc);
540 evdesc_line1 = _source_desc_get(evdesc); 542 evdesc_line1 = _source_desc_get(evdesc);
541 _template_fill(str_ev, "@#CLASS_EVENT_@#FUNC", eolian_class_name_get(class), evname, EINA_TRUE); 543 _template_fill(str_ev, "@#CLASS_EVENT_@#FUNC", class, NULL, evname, EINA_TRUE);
542 eina_strbuf_replace_all(str_ev, ",", "_"); 544 eina_strbuf_replace_all(str_ev, ",", "_");
543 545
544 eina_strbuf_append_printf(tmpbuf, 546 eina_strbuf_append_printf(tmpbuf,
@@ -560,7 +562,9 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
560 Eina_Bool ret = EINA_FALSE; 562 Eina_Bool ret = EINA_FALSE;
561 const Eina_List *itr; 563 const Eina_List *itr;
562 Eolian_Function fn; 564 Eolian_Function fn;
563 const char *classname = eolian_class_name_get(class); 565
566 _class_func_names_fill(class, NULL, NULL);
567 char *classname = strdup(current_classname);
564 568
565 const char *str_classtype = NULL; 569 const char *str_classtype = NULL;
566 switch(eolian_class_type_get(class)) 570 switch(eolian_class_type_get(class))
@@ -595,7 +599,7 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
595 Eina_Strbuf *str_ev = eina_strbuf_new(); 599 Eina_Strbuf *str_ev = eina_strbuf_new();
596 Eina_Strbuf *tmpl_impl = eina_strbuf_new(); 600 Eina_Strbuf *tmpl_impl = eina_strbuf_new();
597 601
598 _template_fill(str_end, tmpl_eo_src, classname, NULL, EINA_TRUE); 602 _template_fill(str_end, tmpl_eo_src, class, NULL, NULL, EINA_TRUE);
599 603
600 eina_strbuf_replace_all(str_end, "@#type_class", str_classtype); 604 eina_strbuf_replace_all(str_end, "@#type_class", str_classtype);
601 eina_strbuf_replace_all(str_end, "@#EOPREFIX", current_eo_prefix_upper); 605 eina_strbuf_replace_all(str_end, "@#EOPREFIX", current_eo_prefix_upper);
@@ -606,7 +610,7 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
606 610
607 eina_strbuf_reset(tmpbuf); 611 eina_strbuf_reset(tmpbuf);
608 if (eolian_class_ctor_enable_get(class)) 612 if (eolian_class_ctor_enable_get(class))
609 _template_fill(tmpbuf, "_@#class_class_constructor", classname, "", EINA_TRUE); 613 _template_fill(tmpbuf, "_@#class_class_constructor", class, NULL, "", EINA_TRUE);
610 else 614 else
611 eina_strbuf_append_printf(tmpbuf, "NULL"); 615 eina_strbuf_append_printf(tmpbuf, "NULL");
612 eina_strbuf_replace_all(str_end, "@#ctor_name", eina_strbuf_string_get(tmpbuf)); 616 eina_strbuf_replace_all(str_end, "@#ctor_name", eina_strbuf_string_get(tmpbuf));
@@ -616,7 +620,7 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
616 { 620 {
617 eina_strbuf_replace_all(str_end, "@#dtor_func", eina_strbuf_string_get(tmpbuf)); 621 eina_strbuf_replace_all(str_end, "@#dtor_func", eina_strbuf_string_get(tmpbuf));
618 eina_strbuf_reset(tmpbuf); 622 eina_strbuf_reset(tmpbuf);
619 _template_fill(tmpbuf, "_@#class_class_destructor", classname, "", EINA_TRUE); 623 _template_fill(tmpbuf, "_@#class_class_destructor", class, NULL, "", EINA_TRUE);
620 eina_strbuf_replace_all(str_end, "@#dtor_name", eina_strbuf_string_get(tmpbuf)); 624 eina_strbuf_replace_all(str_end, "@#dtor_name", eina_strbuf_string_get(tmpbuf));
621 } 625 }
622 else 626 else
@@ -636,9 +640,10 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
636 Eolian_Function_Type ftype; 640 Eolian_Function_Type ftype;
637 641
638 eolian_implement_information_get(impl_desc, &impl_classname, &funcname, &ftype); 642 eolian_implement_information_get(impl_desc, &impl_classname, &funcname, &ftype);
643 Eolian_Class impl_class = eolian_class_find_by_name(impl_classname);
639 644
640 eina_strbuf_reset(tmpl_impl); 645 eina_strbuf_reset(tmpl_impl);
641 _template_fill(str_func, NULL, impl_classname, NULL, EINA_FALSE); /* Invoked to set the variables */ 646 _template_fill(str_func, NULL, impl_class, NULL, NULL, EINA_FALSE); /* Invoked to set the variables */
642 eina_strbuf_append(tmpl_impl, tmpl_eo_func_desc); 647 eina_strbuf_append(tmpl_impl, tmpl_eo_func_desc);
643 eina_strbuf_replace_all(tmpl_impl, "@#EOPREFIX", current_eo_prefix_upper); 648 eina_strbuf_replace_all(tmpl_impl, "@#EOPREFIX", current_eo_prefix_upper);
644 eina_strbuf_replace_all(tmpl_impl, "@#eoprefix", current_eo_prefix_lower); 649 eina_strbuf_replace_all(tmpl_impl, "@#eoprefix", current_eo_prefix_lower);
@@ -655,7 +660,6 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
655 Eolian_Function in_prop = NULL; 660 Eolian_Function in_prop = NULL;
656 const Eina_List *itr2; 661 const Eina_List *itr2;
657 Eolian_Function fnid; 662 Eolian_Function fnid;
658 Eolian_Class impl_class = eolian_class_find_by_name(impl_classname);
659 EINA_LIST_FOREACH(eolian_class_functions_list_get(impl_class, EOLIAN_CTOR), itr2, fnid) 663 EINA_LIST_FOREACH(eolian_class_functions_list_get(impl_class, EOLIAN_CTOR), itr2, fnid)
660 if (fnid && !strcmp(eolian_function_name_get(fnid), funcname)) in_meth = fnid; 664 if (fnid && !strcmp(eolian_function_name_get(fnid), funcname)) in_meth = fnid;
661 EINA_LIST_FOREACH(eolian_class_functions_list_get(impl_class, EOLIAN_METHOD), itr2, fnid) 665 EINA_LIST_FOREACH(eolian_class_functions_list_get(impl_class, EOLIAN_METHOD), itr2, fnid)
@@ -676,7 +680,7 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
676 680
677 if (in_meth) 681 if (in_meth)
678 { 682 {
679 _template_fill(str_op, tmpl_impl_str, impl_classname, funcname, EINA_FALSE); 683 _template_fill(str_op, tmpl_impl_str, impl_class, NULL, funcname, EINA_FALSE);
680 eo_bind_func_generate(class, in_meth, EOLIAN_UNRESOLVED, str_bodyf, impl_classname); 684 eo_bind_func_generate(class, in_meth, EOLIAN_UNRESOLVED, str_bodyf, impl_classname);
681 continue; 685 continue;
682 } 686 }
@@ -693,14 +697,14 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
693 if (prop_write) 697 if (prop_write)
694 { 698 {
695 sprintf(tmpstr, "%s_set", funcname); 699 sprintf(tmpstr, "%s_set", funcname);
696 _template_fill(str_op, tmpl_impl_str, impl_classname, tmpstr, EINA_FALSE); 700 _template_fill(str_op, tmpl_impl_str, impl_class, NULL, tmpstr, EINA_FALSE);
697 eo_bind_func_generate(class, in_prop, EOLIAN_PROP_SET, str_bodyf, impl_classname); 701 eo_bind_func_generate(class, in_prop, EOLIAN_PROP_SET, str_bodyf, impl_classname);
698 } 702 }
699 703
700 if (prop_read) 704 if (prop_read)
701 { 705 {
702 sprintf(tmpstr, "%s_get", funcname); 706 sprintf(tmpstr, "%s_get", funcname);
703 _template_fill(str_op, tmpl_impl_str, impl_classname, tmpstr, EINA_FALSE); 707 _template_fill(str_op, tmpl_impl_str, impl_class, NULL, tmpstr, EINA_FALSE);
704 eo_bind_func_generate(class, in_prop, EOLIAN_PROP_GET, str_bodyf, impl_classname); 708 eo_bind_func_generate(class, in_prop, EOLIAN_PROP_GET, str_bodyf, impl_classname);
705 } 709 }
706 } 710 }
@@ -787,7 +791,7 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
787 const char *evname; 791 const char *evname;
788 792
789 eolian_class_event_information_get(event, &evname, NULL, NULL); 793 eolian_class_event_information_get(event, &evname, NULL, NULL);
790 _template_fill(tmpbuf, "@#CLASS_EVENT_@#FUNC", classname, evname, EINA_TRUE); 794 _template_fill(tmpbuf, "@#CLASS_EVENT_@#FUNC", class, NULL, evname, EINA_TRUE);
791 eina_strbuf_replace_all(tmpbuf, ",", "_"); 795 eina_strbuf_replace_all(tmpbuf, ",", "_");
792 eina_strbuf_append_printf(str_ev, "\n %s,", eina_strbuf_string_get(tmpbuf)); 796 eina_strbuf_append_printf(str_ev, "\n %s,", eina_strbuf_string_get(tmpbuf));
793 } 797 }
@@ -796,7 +800,7 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
796 if (eina_strbuf_length_get(str_ev)) 800 if (eina_strbuf_length_get(str_ev))
797 { 801 {
798 Eina_Strbuf *events_desc = eina_strbuf_new(); 802 Eina_Strbuf *events_desc = eina_strbuf_new();
799 _template_fill(events_desc, tmpl_events_desc, classname, "", EINA_TRUE); 803 _template_fill(events_desc, tmpl_events_desc, class, NULL, "", EINA_TRUE);
800 eina_strbuf_replace_all(events_desc, "@#list_evdesc", eina_strbuf_string_get(str_ev)); 804 eina_strbuf_replace_all(events_desc, "@#list_evdesc", eina_strbuf_string_get(str_ev));
801 eina_strbuf_replace_all(str_end, "@#events_desc", eina_strbuf_string_get(events_desc)); 805 eina_strbuf_replace_all(str_end, "@#events_desc", eina_strbuf_string_get(events_desc));
802 eina_strbuf_free(events_desc); 806 eina_strbuf_free(events_desc);
@@ -816,7 +820,7 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
816 Eolian_Class inherit_class = eolian_class_find_by_name(inherit_name); 820 Eolian_Class inherit_class = eolian_class_find_by_name(inherit_name);
817 const char *eo_prefix = eolian_class_eo_prefix_get(inherit_class); 821 const char *eo_prefix = eolian_class_eo_prefix_get(inherit_class);
818 if (!eo_prefix) eo_prefix = inherit_name; 822 if (!eo_prefix) eo_prefix = inherit_name;
819 _template_fill(tmpbuf, "@#EOPREFIX_CLASS, ", eo_prefix, "", EINA_FALSE); 823 _template_fill(tmpbuf, "@#EOPREFIX_CLASS, ", NULL, eo_prefix, "", EINA_FALSE);
820 eina_strbuf_replace_all(tmpbuf, "@#EOPREFIX", current_eo_prefix_upper); 824 eina_strbuf_replace_all(tmpbuf, "@#EOPREFIX", current_eo_prefix_upper);
821 } 825 }
822 826
@@ -829,13 +833,13 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
829 if (eina_strbuf_length_get(str_op)) 833 if (eina_strbuf_length_get(str_op))
830 { 834 {
831 Eina_Strbuf *ops_desc = eina_strbuf_new(); 835 Eina_Strbuf *ops_desc = eina_strbuf_new();
832 _template_fill(ops_desc, tmpl_eo_ops_desc, classname, "", EINA_TRUE); 836 _template_fill(ops_desc, tmpl_eo_ops_desc, class, NULL, "", EINA_TRUE);
833 eina_strbuf_replace_all(ops_desc, "@#list_op", eina_strbuf_string_get(str_op)); 837 eina_strbuf_replace_all(ops_desc, "@#list_op", eina_strbuf_string_get(str_op));
834 eina_strbuf_replace_all(str_end, "@#ops_desc", eina_strbuf_string_get(ops_desc)); 838 eina_strbuf_replace_all(str_end, "@#ops_desc", eina_strbuf_string_get(ops_desc));
835 eina_strbuf_free(ops_desc); 839 eina_strbuf_free(ops_desc);
836 _template_fill(tmpbuf, 840 _template_fill(tmpbuf,
837 "EO_CLASS_DESCRIPTION_OPS(_@#class_op_desc)", 841 "EO_CLASS_DESCRIPTION_OPS(_@#class_op_desc)",
838 classname, NULL, EINA_TRUE); 842 class, NULL, NULL, EINA_TRUE);
839 } 843 }
840 else 844 else
841 { 845 {
@@ -862,6 +866,7 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf)
862 866
863 ret = EINA_TRUE; 867 ret = EINA_TRUE;
864end: 868end:
869 free(classname);
865 eina_strbuf_free(tmpbuf); 870 eina_strbuf_free(tmpbuf);
866 eina_strbuf_free(str_op); 871 eina_strbuf_free(str_op);
867 eina_strbuf_free(str_func); 872 eina_strbuf_free(str_func);