[EGIT] [tools/enventor] master 01/01: fixed some memory leaks.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=515efc710b8f8a1699e65747d2b882fd1c2c583e commit 515efc710b8f8a1699e65747d2b882fd1c2c583e Author: ChunEon Park Date: Sat Jul 19 15:50:40 2014 +0900 fixed some memory leaks. --- src/bin/config_data.c | 4 +++- src/bin/edj_viewer.c| 5 ++--- src/bin/syntax_helper.c | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/bin/config_data.c b/src/bin/config_data.c index b2a5ef8..2b9db44 100644 --- a/src/bin/config_data.c +++ b/src/bin/config_data.c @@ -47,7 +47,9 @@ config_edj_path_update(config_data *cd) snprintf(buf, (ext - file) + 1, "%s", file); else strncpy(buf, file, sizeof(buf)); - sprintf(edj_path, "%s/%s.edj", ecore_file_dir_get(cd->edc_path), buf); + char *filedir = ecore_file_dir_get(cd->edc_path); + sprintf(edj_path, "%s/%s.edj", filedir, buf); + free(filedir); eina_stringshare_replace(&cd->edj_path, edj_path); } diff --git a/src/bin/edj_viewer.c b/src/bin/edj_viewer.c index 0413ce1..1b377bc 100644 --- a/src/bin/edj_viewer.c +++ b/src/bin/edj_viewer.c @@ -150,7 +150,6 @@ edj_changed_cb(void *data, int type EINA_UNUSED, void *event) { vd->del_cb(vd->data); view_term(vd); -vd->edj_monitor = NULL; EINA_LOG_ERR("Failed to load edj file \"%s\"", config_edj_path_get()); return ECORE_CALLBACK_DONE; } @@ -292,8 +291,8 @@ view_term(view_data *vd) { if (!vd) return; - if (vd->group_name) eina_stringshare_del(vd->group_name); - if (vd->part_name) eina_stringshare_del(vd->part_name); + eina_stringshare_del(vd->group_name); + eina_stringshare_del(vd->part_name); if (vd->part_obj) evas_object_event_callback_del(vd->part_obj, EVAS_CALLBACK_DEL, diff --git a/src/bin/syntax_helper.c b/src/bin/syntax_helper.c index d0043ef..456ae0f 100644 --- a/src/bin/syntax_helper.c +++ b/src/bin/syntax_helper.c @@ -44,6 +44,7 @@ syntax_term(syntax_helper *sh) ecore_timer_del(sh->buf_flush_timer); eina_strbuf_free(sh->strbuf); + free(sh); } color_data * --
[EGIT] [tools/enventor] master 01/01: edc_parser - fixed memory leaks
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=c5d14675136bd0985454932c52fba12bb8fd225c commit c5d14675136bd0985454932c52fba12bb8fd225c Author: ChunEon Park Date: Sat Jul 19 15:34:47 2014 +0900 edc_parser - fixed memory leaks --- src/bin/edc_parser.c | 288 +-- 1 file changed, 144 insertions(+), 144 deletions(-) diff --git a/src/bin/edc_parser.c b/src/bin/edc_parser.c index c03b110..4aceb5b 100644 --- a/src/bin/edc_parser.c +++ b/src/bin/edc_parser.c @@ -292,7 +292,7 @@ static void type_init_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) { type_init_td *td = data; - parser_attr *attr; + parser_attr attr; td->attrs = eina_inarray_new(sizeof(parser_attr), 24); eina_inarray_step_set(td->attrs, sizeof(Eina_Inarray), sizeof(parser_attr), @@ -315,11 +315,11 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) eina_array_push(types, eina_stringshare_add("PROXY")); eina_array_push(types, eina_stringshare_add("SPACER")); - attr = calloc(1, sizeof(parser_attr)); - attr->keyword = eina_stringshare_add("type:"); - attr->value.strs = types; - attr->value.type = ATTR_VALUE_CONSTANT; - eina_inarray_push(td->attrs, attr); + memset(&attr, 0x00, sizeof(parser_attr)); + attr.keyword = eina_stringshare_add("type:"); + attr.value.strs = types; + attr.value.type = ATTR_VALUE_CONSTANT; + eina_inarray_push(td->attrs, &attr); Eina_Array *comps = eina_array_new(4); eina_array_push(comps, eina_stringshare_add("RAW")); @@ -327,11 +327,11 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) eina_array_push(comps, eina_stringshare_add("COMP")); eina_array_push(comps, eina_stringshare_add("LOSSY")); - attr = calloc(1, sizeof(parser_attr)); - attr->keyword = eina_stringshare_add("image:"); - attr->value.strs = comps; - attr->value.type = ATTR_VALUE_CONSTANT; - eina_inarray_push(td->attrs, attr); + memset(&attr, 0x00, sizeof(parser_attr)); + attr.keyword = eina_stringshare_add("image:"); + attr.value.strs = comps; + attr.value.type = ATTR_VALUE_CONSTANT; + eina_inarray_push(td->attrs, &attr); Eina_Array *trans = eina_array_new(10); eina_array_push(trans, eina_stringshare_add("LINEAR")); @@ -345,11 +345,11 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) eina_array_push(trans, eina_stringshare_add("BOUNCE")); eina_array_push(trans, eina_stringshare_add("SPRING")); - attr = calloc(1, sizeof(parser_attr)); - attr->keyword = eina_stringshare_add("transition:"); - attr->value.strs = trans; - attr->value.type = ATTR_VALUE_CONSTANT; - eina_inarray_push(td->attrs, attr); + memset(&attr, 0x00, sizeof(parser_attr)); + attr.keyword = eina_stringshare_add("transition:"); + attr.value.strs = trans; + attr.value.type = ATTR_VALUE_CONSTANT; + eina_inarray_push(td->attrs, &attr); Eina_Array *aspect = eina_array_new(4); eina_array_push(aspect, eina_stringshare_add("NONE")); @@ -357,11 +357,11 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) eina_array_push(aspect, eina_stringshare_add("HORIZONTAL")); eina_array_push(aspect, eina_stringshare_add("BOTH")); - attr = calloc(1, sizeof(parser_attr)); - attr->keyword = eina_stringshare_add("aspect_preference:"); - attr->value.strs = aspect; - attr->value.type = ATTR_VALUE_CONSTANT; - eina_inarray_push(td->attrs, attr); + memset(&attr, 0x00, sizeof(parser_attr)); + attr.keyword = eina_stringshare_add("aspect_preference:"); + attr.value.strs = aspect; + attr.value.type = ATTR_VALUE_CONSTANT; + eina_inarray_push(td->attrs, &attr); Eina_Array *effect = eina_array_new(11); eina_array_push(effect, eina_stringshare_add("NONE")); @@ -376,11 +376,11 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) eina_array_push(effect, eina_stringshare_add("FAR_SOFT_SHADOW")); eina_array_push(effect, eina_stringshare_add("GLOW")); - attr = calloc(1, sizeof(parser_attr)); - attr->keyword = eina_stringshare_add("effect:"); - attr->value.strs = effect; - attr->value.type = ATTR_VALUE_CONSTANT; - eina_inarray_push(td->attrs, attr); + memset(&attr, 0x00, sizeof(parser_attr)); + attr.keyword = eina_stringshare_add("effect:"); + attr.value.strs = effect; + attr.value.type = ATTR_VALUE_CONSTANT; + eina_inarray_push(td->attrs, &attr); Eina_Array *action = eina_array_new(23); eina_array_push(action, eina_stringshare_add("NONE")); @@ -407,136 +407,136 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) eina_array_push(action, eina_stringshare_add("PHYSICS_STOP")); eina_array_push(action, eina_stringshare_add("PHYSICS_ROT_SET")); - attr = calloc(1, sizeof(parser_attr)); - attr->keyword = eina_stringshare_add("action:"); - attr->value.strs = a
[E-devel] Elementary leaks with OpenGL
Yesterday I enabled the OpenGL engine in elementary. Actually I did run elementary config to disable clicks in terminology, but while I was at it I found that engine tab and thought that gl engine would perform better than software, so I switched to it. Now when I run terminology it eats up all of my ram in a few seconds. I did a vanlgrind log (attached to this email) and saw the following lines repeatedly printed on stderr: ERR<5241>:EvasGL modules/evas/engines/gl_common/evas_gl_core.c:699 _surface_cap_init() There are no available surface formats. Error! ERR<5241>:EvasGL modules/evas/engines/gl_common/evas_gl_core.c:1342 evgl_engine_init() Error initializing surface cap Of course I'm back on software engine :) -- Massimo Maiurana Ragusa (RG) ==5241== Memcheck, a memory error detector ==5241== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==5241== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info ==5241== Command: terminology ==5241== Parent PID: 4035 ==5241== ==5241== Conditional jump or move depends on uninitialised value(s) ==5241==at 0x88F8FEB: dlopen_doit (dlopen.c:61) ==5241==by 0x400E8B3: _dl_catch_error (dl-error.c:187) ==5241==by 0x88F95DC: _dlerror_run (dlerror.c:163) ==5241==by 0x88F90C0: dlopen@@GLIBC_2.2.5 (dlopen.c:87) ==5241==by 0x5679722: eina_module_load (eina_module.c:312) ==5241==by 0x567A191: eina_module_list_load (eina_module.c:558) ==5241==by 0x6138D43: ecore_init.part.3 (ecore.c:180) ==5241==by 0x4FCCDAB: elm_quicklaunch_init (elm_main.c:605) ==5241==by 0x4FCD6C7: elm_init (elm_main.c:306) ==5241==by 0x40C9B1: main (main.c:3179) ==5241== ==5241== Conditional jump or move depends on uninitialised value(s) ==5241==at 0x40123AB: _dl_open (dl-open.c:608) ==5241==by 0x88F902A: dlopen_doit (dlopen.c:66) ==5241==by 0x400E8B3: _dl_catch_error (dl-error.c:187) ==5241==by 0x88F95DC: _dlerror_run (dlerror.c:163) ==5241==by 0x88F90C0: dlopen@@GLIBC_2.2.5 (dlopen.c:87) ==5241==by 0x5679722: eina_module_load (eina_module.c:312) ==5241==by 0x567A191: eina_module_list_load (eina_module.c:558) ==5241==by 0x6138D43: ecore_init.part.3 (ecore.c:180) ==5241==by 0x4FCCDAB: elm_quicklaunch_init (elm_main.c:605) ==5241==by 0x4FCD6C7: elm_init (elm_main.c:306) ==5241==by 0x40C9B1: main (main.c:3179) ==5241== ==5241== Conditional jump or move depends on uninitialised value(s) ==5241==at 0x4C2A566: calloc (vg_replace_malloc.c:618) ==5241==by 0x400A863: _dl_new_object (dl-object.c:75) ==5241==by 0x4005E83: _dl_map_object_from_fd (dl-load.c:1059) ==5241==by 0x400809E: _dl_map_object (dl-load.c:2605) ==5241==by 0x4012A24: dl_open_worker (dl-open.c:235) ==5241==by 0x400E8B3: _dl_catch_error (dl-error.c:187) ==5241==by 0x401243A: _dl_open (dl-open.c:661) ==5241==by 0x88F902A: dlopen_doit (dlopen.c:66) ==5241==by 0x400E8B3: _dl_catch_error (dl-error.c:187) ==5241==by 0x88F95DC: _dlerror_run (dlerror.c:163) ==5241==by 0x88F90C0: dlopen@@GLIBC_2.2.5 (dlopen.c:87) ==5241==by 0x5679722: eina_module_load (eina_module.c:312) ==5241== ==5241== Use of uninitialised value of size 8 ==5241==at 0x4018923: memcpy (memcpy.S:167) ==5241==by 0x400A89D: _dl_new_object (dl-object.c:87) ==5241==by 0x4005E83: _dl_map_object_from_fd (dl-load.c:1059) ==5241==by 0x400809E: _dl_map_object (dl-load.c:2605) ==5241==by 0x4012A24: dl_open_worker (dl-open.c:235) ==5241==by 0x400E8B3: _dl_catch_error (dl-error.c:187) ==5241==by 0x401243A: _dl_open (dl-open.c:661) ==5241==by 0x88F902A: dlopen_doit (dlopen.c:66) ==5241==by 0x400E8B3: _dl_catch_error (dl-error.c:187) ==5241==by 0x88F95DC: _dlerror_run (dlerror.c:163) ==5241==by 0x88F90C0: dlopen@@GLIBC_2.2.5 (dlopen.c:87) ==5241==by 0x5679722: eina_module_load (eina_module.c:312) ==5241== ==5241== Use of uninitialised value of size 8 ==5241==at 0x400A89E: _dl_new_object (dl-object.c:87) ==5241==by 0x4005E83: _dl_map_object_from_fd (dl-load.c:1059) ==5241==by 0x400809E: _dl_map_object (dl-load.c:2605) ==5241==by 0x4012A24: dl_open_worker (dl-open.c:235) ==5241==by 0x400E8B3: _dl_catch_error (dl-error.c:187) ==5241==by 0x401243A: _dl_open (dl-open.c:661) ==5241==by 0x88F902A: dlopen_doit (dlopen.c:66) ==5241==by 0x400E8B3: _dl_catch_error (dl-error.c:187) ==5241==by 0x88F95DC: _dlerror_run (dlerror.c:163) ==5241==by 0x88F90C0: dlopen@@GLIBC_2.2.5 (dlopen.c:87) ==5241==by 0x5679722: eina_module_load (eina_module.c:312) ==5241==by 0x567A191: eina_module_list_load (eina_module.c:558) ==5241== ==5241== Use of uninitialised value of size 8 ==5241==at 0x400FA59: _dl_name_match_p (dl-misc.c:295) ==5241==by 0x4007F99: _dl_map_object (dl-load.c:2336) ==5241==by 0x4012A24: dl_open_worker (dl-open.c:235) ==5241==by 0x400E8B3: _dl_catch_error (dl-error.c:187) ==5241==by 0x401243A: _dl_open (dl-open.c:661) ==5241==by 0x8
[EGIT] [tools/enventor] master 01/01: fixed some memory leaks that detected by valgrind.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=6d0c720b208e55d3fb024a420db040a05d6ad4d4 commit 6d0c720b208e55d3fb024a420db040a05d6ad4d4 Author: ChunEon Park Date: Sat Jul 19 15:07:25 2014 +0900 fixed some memory leaks that detected by valgrind. --- src/bin/dummy_obj.c | 2 ++ src/bin/main.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/bin/dummy_obj.c b/src/bin/dummy_obj.c index f6040a9..93d52c0 100644 --- a/src/bin/dummy_obj.c +++ b/src/bin/dummy_obj.c @@ -80,6 +80,8 @@ dummy_objs_update(dummy_obj *dummy) dummy->swallows = eina_list_append(dummy->swallows, po); } } + + edje_edit_string_list_free(parts); } static Eina_Bool diff --git a/src/bin/main.c b/src/bin/main.c index 9242659..308bc63 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -560,6 +560,8 @@ term(app_data *ad) config_term(); autocomp_term(); + eio_monitor_del(ad->edc_monitor); + elm_shutdown(); } --
[EGIT] [tools/enventor] master 01/01: statusbar - enable in default
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=3d8ca8112fb3c2ec28d27e83ed739358ce185b04 commit 3d8ca8112fb3c2ec28d27e83ed739358ce185b04 Author: ChunEon Park Date: Sat Jul 19 14:45:07 2014 +0900 statusbar - enable in default --- src/bin/config_data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/config_data.c b/src/bin/config_data.c index 53fd848..b2a5ef8 100644 --- a/src/bin/config_data.c +++ b/src/bin/config_data.c @@ -123,7 +123,7 @@ config_load() cd->font_size = 1.0f; cd->view_scale = 1; -cd->stats_bar = EINA_FALSE; +cd->stats_bar = EINA_TRUE; cd->linenumber = EINA_TRUE; cd->part_highlight = EINA_TRUE; cd->dummy_swallow = EINA_TRUE; --
[EGIT] [tools/enventor] master 01/01: get ready to release v0.3.0
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=9c7debc87ce8a84c33bfc7cbb0cc182a23a85906 commit 9c7debc87ce8a84c33bfc7cbb0cc182a23a85906 Author: ChunEon Park Date: Sat Jul 19 14:38:27 2014 +0900 get ready to release v0.3.0 --- NEWS | 25 - README | 2 +- configure.ac | 2 +- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index b129567..779141c 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,30 @@ -Enventor 0.2 +Enventor 0.3.0 +Changes since Enventor 0.2.0: +--- + +Additions: + * Go to line (Ctrl+L) + * Support template codes from the new file + * Auto Completion (Ctrl+O) + +Improvements: + * Improved syntax color keywords to be configurable (enventor/data/color/color.src) + * Support more syntax color keywords + * Optimized syntax color function with parital applying mechacnism (Much faster in case of editing huge text) + * Support syntax color on macros + * Better intelligent focus movement + * Changed desktop category to Development/Utility + +Fixes: + * Fixed broken Search GUI scalability + * Fixed corrupted line number displaying + * Fixed a crash when an invalid input file is requested + * Got rid of a dangling empty space in the end of the file + * Fixed missing loading "&" character in a edc + Changes since Enventor 0.1: --- diff --git a/README b/README index 674e9df..a52342a 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -[Enventor v0.2] +[Enventor v0.3.0] This is an EDC editor with some convenient functions. It's brand new and was only started near the begining of June 2013, so expecting it to do everything a diff --git a/configure.ac b/configure.ac index aaa0cb7..709b536 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [0]) -m4_define([v_min], [2]) +m4_define([v_min], [3]) m4_define([v_mic], [0]) #m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl ##-- When released, remove the dnl on the below line --
[EGIT] [tools/enventor] master 01/01: added missed a header.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=9d7c89b7b9dcb618e03debba5f467405a816a022 commit 9d7c89b7b9dcb618e03debba5f467405a816a022 Author: ChunEon Park Date: Sat Jul 19 14:09:59 2014 +0900 added missed a header. --- src/include/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/src/include/Makefile.am b/src/include/Makefile.am index e1f661e..167f52f 100644 --- a/src/include/Makefile.am +++ b/src/include/Makefile.am @@ -22,4 +22,5 @@ EXTRA_DIST = common.h \ newfile.h \ auto_comp.h \ auto_comp_code.h \ + goto.h \ search.h --
[EGIT] [tools/enventor] master 01/01: fix indentation.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=873d212cd4b039d582453369f07af1a53cf63ed5 commit 873d212cd4b039d582453369f07af1a53cf63ed5 Author: ChunEon Park Date: Sat Jul 19 14:06:51 2014 +0900 fix indentation. --- data/templates/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/templates/Makefile.am b/data/templates/Makefile.am index b9b5534..a047bf9 100644 --- a/data/templates/Makefile.am +++ b/data/templates/Makefile.am @@ -16,7 +16,7 @@ files_DATA = basic.edc \ map.edj \ minimum.edc \ minimum.edj \ -proxy.edc \ + proxy.edc \ proxy.edj \ rect.edc \ rect.edj \ --
[EGIT] [tools/enventor] master 01/01: template - add a new template, minimum
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=408e6fd04d317f57524ca9c692fc05f62123cbcf commit 408e6fd04d317f57524ca9c692fc05f62123cbcf Author: ChunEon Park Date: Sat Jul 19 13:55:24 2014 +0900 template - add a new template, minimum --- data/templates/Makefile.am| 7 ++- data/templates/empty.edc | 6 -- data/templates/{empty.edc => minimum.edc} | 0 src/bin/edc_editor.c | 3 +-- src/bin/newfile.c | 7 ++- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/data/templates/Makefile.am b/data/templates/Makefile.am index c6bdde1..b9b5534 100644 --- a/data/templates/Makefile.am +++ b/data/templates/Makefile.am @@ -14,7 +14,9 @@ files_DATA = basic.edc \ image.edj \ map.edc \ map.edj \ - proxy.edc \ + minimum.edc \ + minimum.edj \ +proxy.edc \ proxy.edj \ rect.edc \ rect.edj \ @@ -75,5 +77,8 @@ spacer.edj: Makefile spacer.edc sound.edj: Makefile sound.edc $(EDJE_CC) $(EDJE_FLAGS) $(srcdir)/sound.edc $(builddir)/sound.edj +minimum.edj: Makefile minimum.edc + $(EDJE_CC) $(EDJE_FLAGS) $(srcdir)/minimum.edc $(builddir)/minimum.edj + clean-local: rm -f *.edj diff --git a/data/templates/empty.edc b/data/templates/empty.edc index c184f42..e69de29 100644 --- a/data/templates/empty.edc +++ b/data/templates/empty.edc @@ -1,6 +0,0 @@ -collections { - group { name: "main"; - parts { - } - } -} \ No newline at end of file diff --git a/data/templates/empty.edc b/data/templates/minimum.edc similarity index 100% copy from data/templates/empty.edc copy to data/templates/minimum.edc diff --git a/src/bin/edc_editor.c b/src/bin/edc_editor.c index 47d5a50..8ec2990 100644 --- a/src/bin/edc_editor.c +++ b/src/bin/edc_editor.c @@ -1079,14 +1079,13 @@ edit_edc_read(edit_data *ed, const char *file_path) ecore_animator_add(syntax_color_timer_cb, ed); - autocomp_target_set(ed); - err: //Even any text is not inserted, line number should start with 1 if (ed->line_max == 0) line_init(ed); if (strbuf_line) eina_strbuf_free(strbuf_line); if (utf8_edit) eina_file_map_free(file, utf8_edit); if (file) eina_file_close(file); + autocomp_target_set(ed); } void diff --git a/src/bin/newfile.c b/src/bin/newfile.c index 528ef2e..0206f40 100644 --- a/src/bin/newfile.c +++ b/src/bin/newfile.c @@ -79,10 +79,15 @@ list_item_selected_cb(void *data, Evas_Object *obj, void *event_info) { Evas_Object *layout = data; Elm_Object_Item *it = event_info; + char *name = (char *)elm_object_item_text_get(it); + + /* empty is real empty. cannot load the edj. so replace the empty to minimum + to show the preview layout. */ + if (!strcmp("empty", name)) name = "minimum"; char buf[PATH_MAX]; snprintf(buf, sizeof(buf), "%s/templates/%s.edj", elm_app_data_dir_get(), -elm_object_item_text_get(it)); +name); elm_layout_file_set(layout, buf, "main"); } --
[EGIT] [tools/enventor] master 01/01: auto_completion - adjust scale value
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=1430eb9741a11ef64c236f666fafe8f550f9f608 commit 1430eb9741a11ef64c236f666fafe8f550f9f608 Author: ChunEon Park Date: Sat Jul 19 13:56:26 2014 +0900 auto_completion - adjust scale value --- src/bin/auto_comp.c | 2 +- src/include/auto_comp_code.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/auto_comp.c b/src/bin/auto_comp.c index a5cc38d..e312b24 100644 --- a/src/bin/auto_comp.c +++ b/src/bin/auto_comp.c @@ -63,7 +63,7 @@ init_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) COMPDATA_SET(ad, "signal",AUTOCOMP_SIGNAL, 2, 0); COMPDATA_SET(ad, "source",AUTOCOMP_SOURCE, 2, 0); COMPDATA_SET(ad, "target",AUTOCOMP_TARGET, 2, 0); - COMPDATA_SET(ad, "scale",AUTOCOMP_SCALE, 0, 0); + COMPDATA_SET(ad, "scale",AUTOCOMP_SCALE, 1, 0); COMPDATA_SET(ad, "rel1",AUTOCOMP_REL1, 2, 1); COMPDATA_SET(ad, "rel2",AUTOCOMP_REL2, 2, 1); COMPDATA_SET(ad, "relatvie",AUTOCOMP_RELATIVE, 1, 0); diff --git a/src/include/auto_comp_code.h b/src/include/auto_comp_code.h index 705f26a..2d1e16e 100644 --- a/src/include/auto_comp_code.h +++ b/src/include/auto_comp_code.h @@ -97,7 +97,7 @@ const char *AUTOCOMP_TARGET[AUTOCOMP_TARGET_LINE_CNT] = #define AUTOCOMP_SCALE_LINE_CNT 1 const char *AUTOCOMP_SCALE[AUTOCOMP_SCALE_LINE_CNT] = { - "scale: 1;" + "scale: ;" }; #define AUTOCOMP_REL1_LINE_CNT 3 --
[EGIT] [tools/enventor] master 01/01: newfile - allow enter key for selecting an item.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=e84a03968abd848f0b18699578b0fadfc8ece30a commit e84a03968abd848f0b18699578b0fadfc8ece30a Author: ChunEon Park Date: Sat Jul 19 13:39:07 2014 +0900 newfile - allow enter key for selecting an item. --- src/bin/newfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/newfile.c b/src/bin/newfile.c index 416a92f..528ef2e 100644 --- a/src/bin/newfile.c +++ b/src/bin/newfile.c @@ -130,7 +130,7 @@ newfile_create(Evas_Object *parent, Evas_Smart_Cb selected_cb, void *data) elm_object_focus_set(list, EINA_TRUE); evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_smart_callback_add(list, "clicked,double", selected_cb, data); + evas_object_smart_callback_add(list, "activated", selected_cb, data); Eina_List *l; Eina_Stringshare *name; --
[EGIT] [tools/enventor] master 01/01: auto_completion - fix indentation
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=3c0f61b4aa9121d996cdf4d1c0292a53ad86a542 commit 3c0f61b4aa9121d996cdf4d1c0292a53ad86a542 Author: ChunEon Park Date: Sat Jul 19 13:35:35 2014 +0900 auto_completion - fix indentation --- src/bin/Makefile.am | 2 +- src/include/Makefile.am | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 63bb8a5..eebc94d 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -30,7 +30,7 @@ enventor_SOURCES = \ search.c \ goto.c \ newfile.c \ -auto_comp.c \ + auto_comp.c \ globals.c enventor_LDADD = @ENVENTOR_LIBS@ diff --git a/src/include/Makefile.am b/src/include/Makefile.am index ad74be1..e1f661e 100644 --- a/src/include/Makefile.am +++ b/src/include/Makefile.am @@ -20,6 +20,6 @@ EXTRA_DIST = common.h \ template_code.h \ tools.h \ newfile.h \ -auto_comp.h \ + auto_comp.h \ auto_comp_code.h \ search.h --
[EGIT] [tools/enventor] master 01/01: introduce new feature, auto completion.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=adae9b6fd322f7ad7a75212de54e7402be0f46df commit adae9b6fd322f7ad7a75212de54e7402be0f46df Author: ChunEon Park Date: Sat Jul 19 13:31:08 2014 +0900 introduce new feature, auto completion. --- README | 1 + src/bin/Makefile.am | 1 + src/bin/auto_comp.c | 553 +++ src/bin/config_data.c| 18 ++ src/bin/edc_editor.c | 102 src/bin/main.c | 10 + src/bin/menu.c | 9 + src/include/Makefile.am | 2 + src/include/auto_comp.h | 5 + src/include/auto_comp_code.h | 329 + src/include/common.h | 1 + src/include/config_data.h| 2 + src/include/edc_editor.h | 3 + 13 files changed, 990 insertions(+), 46 deletions(-) diff --git a/README b/README index bda17e8..674e9df 100644 --- a/README +++ b/README @@ -47,6 +47,7 @@ F12 = Setting Ctrl+S = Quick Save + Compile EDC Ctrl+I = On/Off Auto Indentation +Ctrl+O = On/Off Auto Completion Ctrl+W = Show/Hide Dummy Swallow Ctrl+H = On/Off Part Highlighting Ctrl+, = Full Edit View / Split View diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 059e52c..63bb8a5 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -30,6 +30,7 @@ enventor_SOURCES = \ search.c \ goto.c \ newfile.c \ +auto_comp.c \ globals.c enventor_LDADD = @ENVENTOR_LIBS@ diff --git a/src/bin/auto_comp.c b/src/bin/auto_comp.c new file mode 100644 index 000..a5cc38d --- /dev/null +++ b/src/bin/auto_comp.c @@ -0,0 +1,553 @@ +#include +#include "auto_comp_code.h" +#include "common.h" + +#define QUEUE_SIZE 20 +#define COMPSET_PAIR_MINIMUM 1 + +typedef struct comp_set_s +{ + Eina_Stringshare *key; + char **txt; + int cursor_offset; + int line_back; + int line_cnt; +} comp_set; + +typedef struct autocomp_s +{ + char queue[QUEUE_SIZE]; + int queue_pos; + comp_set compset[COMPSET_CNT]; + edit_data *ed; + Evas_Object *anchor; + Evas_Object *list; + Eina_List *compset_list; + Ecore_Thread *init_thread; + Eina_Bool anchor_visible : 1; + Eina_Bool initialized : 1; +} autocomp_data; + +static autocomp_data *g_ad = NULL; + +#define COMPDATA_SET(ad, key, txt, cursor_offset, line_back) \ + compdata_set(ad, idx++, key, (char **)(&txt), cursor_offset, line_back, txt##_LINE_CNT) + +static void +compdata_set(autocomp_data *ad, int idx, char *key, char **txt, int cursor_offset, int line_back, int line_cnt) +{ + ad->compset[idx].key = eina_stringshare_add(key); + ad->compset[idx].txt = txt; + ad->compset[idx].cursor_offset = cursor_offset; + ad->compset[idx].line_back = line_back; + ad->compset[idx].line_cnt = line_cnt; +} + +static void +init_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) +{ + autocomp_data *ad = data; + int idx = 0; + + COMPDATA_SET(ad, "collections",AUTOCOMP_COLLECTIONS, 2, 1); + COMPDATA_SET(ad, "image",AUTOCOMP_IMAGE, 7, 0); + COMPDATA_SET(ad, "images",AUTOCOMP_IMAGES, 2, 1); + COMPDATA_SET(ad, "group",AUTOCOMP_GROUP, 4, 1); + COMPDATA_SET(ad, "type",AUTOCOMP_TYPE, 0, 0); + COMPDATA_SET(ad, "part",AUTOCOMP_PART, 4, 1); + COMPDATA_SET(ad, "parts",AUTOCOMP_PARTS, 2, 1); + COMPDATA_SET(ad, "description",AUTOCOMP_DESCRIPTION, 8, 1); + COMPDATA_SET(ad, "inherit",AUTOCOMP_INHERIT, 6, 0); + COMPDATA_SET(ad, "program",AUTOCOMP_PROGRAM, 4, 1); + COMPDATA_SET(ad, "programs",AUTOCOMP_PROGRAMS, 2, 1); + COMPDATA_SET(ad, "signal",AUTOCOMP_SIGNAL, 2, 0); + COMPDATA_SET(ad, "source",AUTOCOMP_SOURCE, 2, 0); + COMPDATA_SET(ad, "target",AUTOCOMP_TARGET, 2, 0); + COMPDATA_SET(ad, "scale",AUTOCOMP_SCALE, 0, 0); + COMPDATA_SET(ad, "rel1",AUTOCOMP_REL1, 2, 1); + COMPDATA_SET(ad, "rel2",AUTOCOMP_REL2, 2, 1); + COMPDATA_SET(ad, "relatvie",AUTOCOMP_RELATIVE, 1, 0); + COMPDATA_SET(ad, "offset", AUTOCOMP_OFFSET, 1, 0); + COMPDATA_SET(ad, "color", AUTOCOMP_COLOR, 1, 0); + COMPDATA_SET(ad, "color2", AUTOCOMP_COLOR2, 1, 0); + COMPDATA_SET(ad, "color3", AUTOCOMP_COLOR3, 1, 0); + COMPDATA_SET(ad, "aspect", AUTOCOMP_ASPECT, 1, 0); + COMPDATA_SET(ad, "aspect_preference", AUTOCOMP_ASPECT_PREFERENCE, 1, 0); + COMPDATA_SET(ad, "normal", AUTOCOMP_NORMAL, 2, 0); + COMPDATA_SET(ad, "effect", AUTOCOMP_EFFECT, 0, 0); + COMPDATA_SET(ad, "text", AUTOCOMP_TEXT, 2, 1); + COMPDATA_SET(ad, "font", AUTOCOMP_FONT, 2, 0); + COMPDATA_SET(ad, "align", AUTOCOMP_ALIGN, 1, 0); + COMPDATA_SET(ad, "size", AUTOCOMP_SIZE, 1, 0); + COMPDATA_SET(ad, "action", AUTOCOMP_ACTION, 6, 0); + COMPDATA_SET(ad, "transition", AUTOCOMP_TRANSITION, 1, 0); + COMPDATA_SET(ad, "after", AUTOCOMP_AFTER, 2, 0); + COMPDATA_SET(ad, "styles", AUTOCOMP_STYLES, 2, 1); + COMPDATA_SET(ad, "style", AUTOCOMP_STYLE, 4, 1); + COMPDATA_SET(ad, "base", AUTOCOMP_BASE, 2, 0); + COMPDATA_SET(ad, "sounds", AU
[EGIT] [tools/enventor] master 01/01: templates - fix an indentation of a textblock template code.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=4c8f205d2c8b5101629f993ad9854e9412b57a00 commit 4c8f205d2c8b5101629f993ad9854e9412b57a00 Author: ChunEon Park Date: Sat Jul 19 12:59:59 2014 +0900 templates - fix an indentation of a textblock template code. --- data/templates/textblock.edc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/templates/textblock.edc b/data/templates/textblock.edc index fe9c1cc..ba1cb0f 100644 --- a/data/templates/textblock.edc +++ b/data/templates/textblock.edc @@ -2,7 +2,7 @@ collections { styles { style { name: "text_style"; base: "font="Sans" font_size=30 text_class=entry color=#0088AA style=shadow,bottom shadow_color=#0080 valign=0.5 ellipsis=1.0 wrap=none align=center"; -} + } } group { name: "main"; parts { --
Re: [E-devel] Request for help: Adding libefl to autotools
did it all work? I'd say we need to do a replacement token and expand it to actual lib or libefl. then all libs in automake would have an "if LIBEFL" and then would build a static library as "noinst" and then the final lt-lib is the aggregation of all of those. On Fri, Jul 18, 2014 at 9:22 AM, Tom Hacohen wrote: > OK. I don't know what I missed before but I started from scratch and now > it works. :) > > -- > Tom. > > On 15/07/14 23:49, Tom Hacohen wrote: >> Hey everyone (probably Gustavo), >> >> As part of my work on efl interfaces I've encountered the need of having >> a unified library that is both compiled and ships headers which are used >> by all of the efl. >> >> Unfortunately, I can't seem to figure out (to be honest, I just get >> frustrated with autofoo and our setup there) how to add a libefl that >> ships libefl.so and Efl.h that are added as dependencies for the rest of >> the libs during compile (in tree) and install (correctly updating the >> .pc files). >> >> I'd love it if someone could help me out there. I really don't want to >> dive into autofoo and try making sense of our macros if it can be helped >> (someone already knows from the top of their head). >> >> Looking forward for the rescue. >> >> Just to clarify a bit more with an example: >> I'd like to include Efl.h from Edje.h and have libedje.so linked with >> libefl.so without going around and updating all of the Makefile.am files >> we have all over the place, and have it working in tree and after >> installed. I think I've done it (was it me?) a while a go when I added >> Eo in tree so it shouldn't be too hard. >> >> Thanks, >> Tom. >> >> >> -- >> Want fast and easy access to all the code in your enterprise? Index and >> search up to 200,000 lines of code with a free copy of Black Duck >> Code Sight - the same software that powers the world's largest code >> search on Ohloh, the Black Duck Open Hub! Try it now. >> http://p.sf.net/sfu/bds >> ___ >> enlightenment-devel mailing list >> enlightenment-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >> > > > > -- > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Gustavo Sverzut Barbieri -- Mobile: +55 (19) 99225-2202 Contact: http://www.gustavobarbieri.com.br/contact -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: evas: table - when colspan(rowspan) is over 2, padding size should be added.
woohyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ad8daa2f846dfc49289894703b88549ac97a0f09 commit ad8daa2f846dfc49289894703b88549ac97a0f09 Author: WooHyun Jung Date: Sat Jul 19 09:50:59 2014 +0900 evas: table - when colspan(rowspan) is over 2, padding size should be added. @ fix --- src/lib/evas/canvas/evas_object_table.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/evas/canvas/evas_object_table.c b/src/lib/evas/canvas/evas_object_table.c index 826cc5b..c577134 100644 --- a/src/lib/evas/canvas/evas_object_table.c +++ b/src/lib/evas/canvas/evas_object_table.c @@ -489,8 +489,10 @@ _evas_object_table_calculate_layout_homogeneous(Evas_Object *o, Evas_Table_Data cx = x + ((opt->col * ww) / priv->size.cols); cw = x + (((opt->col + opt->colspan) * ww) / priv->size.cols) - cx; +cw += (opt->colspan - 1) * priv->pad.v; cy = y + ((opt->row * hh) / priv->size.rows); ch = y + (((opt->row + opt->rowspan) * hh) / priv->size.rows) - cy; +ch += (opt->rowspan - 1) * priv->pad.h; cx += (opt->col) * priv->pad.h; cy += (opt->row) * priv->pad.v; --
[EGIT] [core/efl] master 02/02: eldbus-cxx: Used inner braces for initialization of inner struct
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=83db6524ba763e204464e1d0b17d1db5a3bffab6 commit 83db6524ba763e204464e1d0b17d1db5a3bffab6 Author: Felipe Magno de Almeida Date: Fri Jul 18 19:23:43 2014 -0300 eldbus-cxx: Used inner braces for initialization of inner struct This removes lots of warnings when compiling with clang. --- src/bindings/eldbus_cxx/eldbus_service.hh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bindings/eldbus_cxx/eldbus_service.hh b/src/bindings/eldbus_cxx/eldbus_service.hh index 1568420..6a4919c 100644 --- a/src/bindings/eldbus_cxx/eldbus_service.hh +++ b/src/bindings/eldbus_cxx/eldbus_service.hh @@ -167,7 +167,7 @@ void _create_methods_specification(Tuple const& , std::integral_constant , std::true_type) { - methods[I] = Eldbus_Method2 {0, 0, 0, 0, 0, 0}; + methods[I] = Eldbus_Method2 {{0, 0, 0, 0, 0}, 0}; }; template @@ -293,12 +293,12 @@ void _create_methods_specification_impl(Method const& method, Eldbus_Method2& el eldbus::_fill_methods(*out_params, method.outs); - eldbus_method = {method.name, &(*in_params)[0], &(*out_params)[0] + eldbus_method = {{method.name, &(*in_params)[0], &(*out_params)[0] , reinterpret_cast (static_cast (&_method_callback)) - , ELDBUS_METHOD_FLAG_HAS_DATA + , ELDBUS_METHOD_FLAG_HAS_DATA} , new std::tuple(std::move(method.f), method.ins, method.outs)}; --
[EGIT] [core/efl] master 01/02: eolian-cxx: Fixed generation using abstract return-type instead of C type
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ad66192465360e45548c1344033b9c3a6861cc11 commit ad66192465360e45548c1344033b9c3a6861cc11 Author: Felipe Magno de Almeida Date: Fri Jul 18 19:20:55 2014 -0300 eolian-cxx: Fixed generation using abstract return-type instead of C type The _tmp_ret variable should use the native C type and not the abstracted C++ type. --- src/lib/eolian_cxx/grammar/inheritance_base_generator.hh | 16 ++-- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh index c7aaa8d..54617f1 100644 --- a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh +++ b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh @@ -192,7 +192,7 @@ operator<<(std::ostream& out, inheritance_base_operations_function const& x) << tab(2) << "{" << endl; if (!is_void) { -out << tab(3) << reinterpret_type(func.ret) << " _tmp_ret = {};" << endl; +out << tab(3) << func.ret.front().native << " _tmp_ret = {};" << endl; } out << tab(3) << "eo_do_super(static_cast(this)->_eo_ptr()" << endl @@ -202,10 +202,8 @@ operator<<(std::ostream& out, inheritance_base_operations_function const& x) << "("; parameter_names_enumerate(out, func.params) << "));" << endl; - if (!is_void) - { -out << tab(3) << "return _tmp_ret;" << endl; - } + if (!function_is_void(func)) + out << tab(4) << "return " << to_cxx(func.ret, "_tmp_ret") << ";" << endl; out << tab(2) << "}" << endl << endl; return out; } @@ -315,7 +313,7 @@ operator<<(std::ostream& out, inheritance_extension_function const& x) if (!is_void) { -out << tab(3) << reinterpret_type(x._func.ret) << " _tmp_ret = {};" << endl; +out << tab(3) << x._func.ret.front().native << " _tmp_ret = {};" << endl; } parameters_container_type::const_iterator callback_iter = @@ -332,10 +330,8 @@ operator<<(std::ostream& out, inheritance_extension_function const& x) out << tab(3) << "eo_do(static_cast(this)->_eo_ptr(), " << function_call(x._func) << ");" << endl; - if (!is_void) - { -out << tab(3) << "return _tmp_ret;" << endl; - } + if (!function_is_void(x._func)) + out << tab(4) << "return " << to_cxx(x._func.ret, "_tmp_ret") << ";" << endl; out << tab(2) << "}" << endl << endl; --
[EGIT] [core/efl] master 10/36: evas-cxx: Added canvas sub-directory to include paths for evas and evas-cxx
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c915df4f409181e71ce03eb5f9fd79a900d27e89 commit c915df4f409181e71ce03eb5f9fd79a900d27e89 Author: Felipe Magno de Almeida Date: Wed Jul 16 11:04:22 2014 -0300 evas-cxx: Added canvas sub-directory to include paths for evas and evas-cxx These subdirectories are needed because the generated wrappers include them directly. --- pc/evas-cxx.pc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pc/evas-cxx.pc.in b/pc/evas-cxx.pc.in index 4db98e7..e9525e9 100644 --- a/pc/evas-cxx.pc.in +++ b/pc/evas-cxx.pc.in @@ -13,4 +13,4 @@ Requires.private: @requirements_pc_evas@ Version: @VERSION@ Libs: -L${libdir} -levas Libs.private: @requirements_libs_evas@ -Cflags: -I${includedir}/efl-@VMAJ@ -I${includedir}/evas-@VMAJ@ -I${includedir}/evas-cxx-@VMAJ@ +Cflags: -I${includedir}/efl-@VMAJ@ -I${includedir}/evas-@VMAJ@ -I${includedir}/evas-cxx-@VMAJ@ -I${includedir}/evas-cxx-@VMAJ@/canvas -I${includedir}/evas-@VMAJ@/canvas --
[EGIT] [core/efl] master 06/36: eolian-cxx: Initial version of complex types / callbacks / events implementation.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=78e396ac19b203b0dbfb1a2b8d298177fffde9e4 commit 78e396ac19b203b0dbfb1a2b8d298177fffde9e4 Author: Savio Sena Date: Wed Jul 16 21:29:47 2014 -0300 eolian-cxx: Initial version of complex types / callbacks / events implementation. --- src/Makefile_Eo_Cxx.am | 3 +- src/Makefile_Eolian_Cxx.am | 11 +- src/bin/eolian_cxx/convert.cc | 2 +- src/bin/eolian_cxx/eolian_wrappers.hh | 19 +- src/bin/eolian_cxx/type_lookup.hh | 48 - src/bin/eolian_cxx/type_lookup_table.cc| 31 +++ src/bindings/eo_cxx/eo_base.hh | 1 + src/bindings/eo_cxx/eo_cxx_interop.hh | 237 + src/bindings/eo_cxx/eo_event.hh| 130 +++ src/lib/eolian_cxx/eo_types.hh | 188 ++-- src/lib/eolian_cxx/eo_validate.hh | 37 .../grammar/eo_class_constructors_generator.hh | 24 ++- .../grammar/eo_class_events_generator.hh | 76 +++ .../grammar/eo_class_functions_generator.hh| 45 ++-- src/lib/eolian_cxx/grammar/eo_class_generator.hh | 2 + src/lib/eolian_cxx/grammar/eo_header_generator.hh | 38 .../grammar/inheritance_base_generator.hh | 12 +- src/lib/eolian_cxx/grammar/parameters_generator.hh | 67 +- src/lib/eolian_cxx/grammar/type_generator.hh | 106 + 19 files changed, 943 insertions(+), 134 deletions(-) diff --git a/src/Makefile_Eo_Cxx.am b/src/Makefile_Eo_Cxx.am index 2acdc05..ffb0e1d 100644 --- a/src/Makefile_Eo_Cxx.am +++ b/src/Makefile_Eo_Cxx.am @@ -16,6 +16,7 @@ bindings/eo_cxx/eo_inherit.hh \ bindings/eo_cxx/eo_ops.hh \ bindings/eo_cxx/eo_private.hh \ bindings/eo_cxx/eo_inherit_bindings.hh \ -bindings/eo_cxx/Eo.hh +bindings/eo_cxx/Eo.hh \ +bindings/eo_cxx/eo_cxx_interop.hh endif diff --git a/src/Makefile_Eolian_Cxx.am b/src/Makefile_Eolian_Cxx.am index af89d12..6bfc6c1 100644 --- a/src/Makefile_Eolian_Cxx.am +++ b/src/Makefile_Eolian_Cxx.am @@ -22,6 +22,7 @@ lib/eolian_cxx/grammar/eo_class_generator.hh \ lib/eolian_cxx/grammar/eo_header_generator.hh \ lib/eolian_cxx/grammar/inheritance_base_generator.hh \ lib/eolian_cxx/grammar/parameters_generator.hh \ +lib/eolian_cxx/grammar/type_generator.hh \ lib/eolian_cxx/grammar/tab.hh ### Binary @@ -35,7 +36,8 @@ bin_eolian_cxx_eolian_cxx_SOURCES = \ bin/eolian_cxx/convert.hh \ bin/eolian_cxx/eolian_wrappers.hh \ bin/eolian_cxx/safe_strings.hh \ -bin/eolian_cxx/type_lookup.hh \ + bin/eolian_cxx/type_lookup.hh \ + bin/eolian_cxx/type_lookup_table.cc \ bin/eolian_cxx/eolian_cxx.cc bin_eolian_cxx_eolian_cxx_CXXFLAGS = -I$(top_builddir)/src/lib/efl \ @@ -82,11 +84,4 @@ tests_eolian_cxx_eolian_cxx_suite_DEPENDENCIES = @USE_EOLIAN_INTERNAL_LIBS@ endif -EXTRA_DIST += \ -tests/eolian_cxx/data/base.eo \ -tests/eolian_cxx/data/class_simple.eo \ -tests/eolian_cxx/data/scope.eo \ -tests/eolian_cxx/data/ctor_dtor.eo \ -tests/eolian_cxx/data/complex_type.eo - endif diff --git a/src/bin/eolian_cxx/convert.cc b/src/bin/eolian_cxx/convert.cc index 873068d..f52affa 100644 --- a/src/bin/eolian_cxx/convert.cc +++ b/src/bin/eolian_cxx/convert.cc @@ -116,7 +116,7 @@ convert_eolian_property_to_functions(Eolian_Class const& klass) { efl::eolian::eolian_type getter_param_type = type_to_native(param.type); -getter_param_type/*.native*/ += "*"; // XXX implement complex types +getter_param_type.native += "*"; return efl::eolian::eo_parameter { { getter_param_type }, param.name }; }); diff --git a/src/bin/eolian_cxx/eolian_wrappers.hh b/src/bin/eolian_cxx/eolian_wrappers.hh index e9a9ab9..7954428 100644 --- a/src/bin/eolian_cxx/eolian_wrappers.hh +++ b/src/bin/eolian_cxx/eolian_wrappers.hh @@ -180,8 +180,7 @@ function_type(Eolian_Function const& func) inline efl::eolian::eolian_type_instance function_return_type(Eolian_Function const& func, Eolian_Function_Type func_type = method_t::value) { - return type_lookup - (::eolian_function_return_type_get(&func, func_type)); + return type_lookup(::eolian_function_return_type_get(&func, func_type)); } inline efl::eolian::eolian_type_instance @@ -286,11 +285,17 @@ parameter_type(Eolian_Function_Parameter const& parameter, efl::eolian::eolian_type_instance type (type_lookup(::eolian_parameter_type_get(¶meter))); assert(!type.empty()); - // XXX implement complex types. if (parameter_is_out(parameter)) - type = { type_to_native(type) + "*" }; + { +type = { efl::eolian::type_to_native(type) }; +type.front().native += "*"; + } if (pa
[EGIT] [core/efl] master 09/36: eolian-cxx: Fixed inheritance extensions not proper qualifying the base class
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6109d17de1c77a027a9c7243233c2138c170139b commit 6109d17de1c77a027a9c7243233c2138c170139b Author: Felipe Magno de Almeida Date: Wed Jul 16 11:33:42 2014 -0300 eolian-cxx: Fixed inheritance extensions not proper qualifying the base class The generator now globally qualifies the base names, so it works outside the efl namespace --- src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh b/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh index f25a9a9..adc4e63 100644 --- a/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh +++ b/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh @@ -46,8 +46,8 @@ operator<<(std::ostream& out, class_extensions const& x) if (it != first) out << ","; out << tab(2) << "efl::eo::detail::extension_inheritance<" -<< *it << ">::type<" -<< cls.name << ">"; +<< *it << ">::type< ::" +<< cls.name_space << "::" << cls.name << ">"; } out << endl; return out; --
[EGIT] [core/efl] master 21/36: eo-cxx: Added catch-all to_c interoperability function
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=df5f57d0ad323faa37f1ce36f39a4f77128340f6 commit df5f57d0ad323faa37f1ce36f39a4f77128340f6 Author: Felipe Magno de Almeida Date: Thu Jul 17 14:05:19 2014 -0300 eo-cxx: Added catch-all to_c interoperability function --- src/bindings/eo_cxx/eo_cxx_interop.hh | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/bindings/eo_cxx/eo_cxx_interop.hh b/src/bindings/eo_cxx/eo_cxx_interop.hh index 4a15949..8d17e89 100644 --- a/src/bindings/eo_cxx/eo_cxx_interop.hh +++ b/src/bindings/eo_cxx/eo_cxx_interop.hh @@ -37,6 +37,12 @@ to_c(bool x) return x ? EINA_TRUE : EINA_FALSE; } +template +T to_c(T const& v) +{ + return v; +} + From C to C++ template --
[EGIT] [core/efl] master 30/36: Fixed type looking up for complex types
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3abc94696e0ee447b02f2c427723c41e7fb3c087 commit 3abc94696e0ee447b02f2c427723c41e7fb3c087 Author: Felipe Magno de Almeida Date: Thu Jul 17 21:47:36 2014 -0300 Fixed type looking up for complex types --- src/bin/eolian_cxx/type_lookup.hh | 43 +++ 1 file changed, 16 insertions(+), 27 deletions(-) diff --git a/src/bin/eolian_cxx/type_lookup.hh b/src/bin/eolian_cxx/type_lookup.hh index b26fff9..da68ff4 100644 --- a/src/bin/eolian_cxx/type_lookup.hh +++ b/src/bin/eolian_cxx/type_lookup.hh @@ -2,7 +2,6 @@ #ifndef EOLIAN_CXX_TYPE_LOOKUP_HH #define EOLIAN_CXX_TYPE_LOOKUP_HH -#include #include #include #include @@ -52,36 +51,26 @@ type_lookup(const Eolian_Type* type, { if (type == NULL) return { efl::eolian::void_type }; // XXX shouldn't - Eina_List const* lt = NULL; - Eina_Iterator *it = NULL; - unsigned int n_; - if ( (it = ::eolian_type_subtypes_list_get(type)) != NULL) - { -lt = static_cast(::eina_iterator_container_get(it)); -n_ = ::eina_list_count(lt) + 1; -::eina_iterator_free(it); - } - else + std::vector types; types.push_back(type); + efl::eina::iterator iterator ( ::eolian_type_subtypes_list_get(type) ); + while(iterator != efl::eina::iterator()) + if(Eolian_Type const* t = &*iterator) + types.push_back(t), ++iterator; + + efl::eolian::eolian_type_instance v(types.size()); + for (std::size_t i = 0; i != types.size(); ++i) { -n_ = 1; +v[i] = type_find(lut.begin(), lut.end(), type_from_eolian(*types[i])); } - // assert(n_ > 0); - efl::eolian::eolian_type_instance v(n_); - for (size_t i=0; i
[EGIT] [core/efl] master 05/36: eolian-cxx: Added examples.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=88f12935278c9d3547da96b74e525402e2efd3f0 commit 88f12935278c9d3547da96b74e525402e2efd3f0 Author: Savio Sena Date: Wed Jul 16 16:32:56 2014 -0300 eolian-cxx: Added examples. Added complex types, callbacks and events examples. --- src/examples/eolian_cxx/Makefile.am| 29 +++-- src/examples/eolian_cxx/eolian_cxx_callbacks_01.cc | 58 ++ .../eolian_cxx/eolian_cxx_complex_types_01.cc | 119 + src/examples/eolian_cxx/eolian_cxx_eo_events_01.cc | 103 ++ 4 files changed, 301 insertions(+), 8 deletions(-) diff --git a/src/examples/eolian_cxx/Makefile.am b/src/examples/eolian_cxx/Makefile.am index c5ad78a..a163522 100644 --- a/src/examples/eolian_cxx/Makefile.am +++ b/src/examples/eolian_cxx/Makefile.am @@ -27,6 +27,8 @@ AM_CXXFLAGS = \ -I$(top_builddir)/src/bindings/eo_cxx \ -I$(top_srcdir)/src/bindings/eina_cxx \ -I$(top_builddir)/src/bindings/eina_cxx \ + -I$(top_srcdir)/src/bindings/ecore_cxx \ + -I$(top_builddir)/src/bindings/ecore_cxx \ -I$(top_srcdir)/src/lib/evas/ \ -I$(top_builddir)/src/lib/evas/ \ -I$(top_srcdir)/src/lib/evas/common \ @@ -77,11 +79,17 @@ IMPL = \ SRCS = \ eolian_cxx_simple_01.cc \ eolian_cxx_inherit_01.cc \ + eolian_cxx_callbacks_01.cc \ + eolian_cxx_eo_events_01.cc \ + eolian_cxx_complex_types_01.cc \ $(IMPL) EXTRA_PROGRAMS = \ - eolian_cxx_simple_01 #\ - eolian_cxx_inherit_01 + eolian_cxx_simple_01 \ + eolian_cxx_inherit_01 \ + eolian_cxx_callbacks_01 \ + eolian_cxx_eo_events_01 \ + eolian_cxx_complex_types_01 DATA_FILES = Makefile.examples $(EOS) @@ -89,15 +97,19 @@ eolian_cxx_simple_01_SOURCES = \ eolian_cxx_simple_01.cc \ colourable.c \ colourablesquare.c - eolian_cxx_simple_01.$(OBJEXT): $(GENERATED) -# eolian_cxx_inherit_01_SOURCES = \ -# eolian_cxx_inherit_01.cc \ -# colourable.c \ -# colourablesquare.c +eolian_cxx_inherit_01_SOURCES = \ + eolian_cxx_inherit_01.cc \ + colourable.c \ + colourablesquare.c +eolian_cxx_inherit_01.$(OBJEXT): $(GENERATED) -# eolian_cxx_inherit_01.$(OBJEXT): $(GENERATED) +eolian_cxx_callbacks_01_SOURCES = eolian_cxx_callbacks_01.cc + +eolian_cxx_eo_events_01_SOURCES = eolian_cxx_eo_events_01.cc + +eolian_cxx_complex_types_01_SOURCES = eolian_cxx_complex_types_01.cc %.eo.hh: %.eo $(AM_V_EOLCXX)$(EOLIAN_CXX) $(EOLIAN_FLAGS) -I${abs_srcdir} -o $@ $< @@ -125,3 +137,4 @@ uninstall-local: if ALWAYS_BUILD_EXAMPLES noinst_PROGRAMS = $(EXTRA_PROGRAMS) endif + diff --git a/src/examples/eolian_cxx/eolian_cxx_callbacks_01.cc b/src/examples/eolian_cxx/eolian_cxx_callbacks_01.cc new file mode 100644 index 000..4efff00 --- /dev/null +++ b/src/examples/eolian_cxx/eolian_cxx_callbacks_01.cc @@ -0,0 +1,58 @@ +#include +#include +#include +#include + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +namespace efl { namespace ecore { +using ::ecore_poller; +} } + +void +example_callbacks() +{ + int count = 0; + efl::ecore::ecore_poller poller + (ECORE_POLLER_CORE, 1, + [&count, &poller] + { + if (++count == 5) + { + std::cout << std::endl; + ecore_main_loop_quit(); + return false; + } + poller.interval_set(2*poller.interval_get()); + std::cout << "."<< std::flush; + return true; + }); + ::ecore_main_loop_begin(); +} + +int main() +{ + efl::eina::eina_init eina_; + efl::eo::eo_init eo_; + efl::ecore::ecore_init ecore_; + + std::cerr << "[+] Running EFL++ example: Callbacks" << std::endl; + example_callbacks(); + + return 0; +} + diff --git a/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc b/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc new file mode 100644 index 000..cc2c760 --- /dev/null +++ b/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc @@ -0,0 +1,119 @@ +#include +#include +#include +#include + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +namespace efl { namespace evas { // XXX only while we don't have namespaces in EFL +using evas_base = ::evas; +using ::evas_object; +using ::evas_text; +using ::evas_grid; +using ::evas_rectangle; +using ::evas_common_interface; +using ::evas_zoomable_interface; +} } + +namespace { + +// EFL Ecore-Evas doesn't have C++ bindings yet. +Ecore_Evas *ee; +void +_ecore_evas_init() +{ + if (!ee) + { +::ecore_evas_init(); +::evas_init(); +ee = ::ecore_evas_new(NULL, 0, 0, 500, 380, NULL); +::
[EGIT] [core/efl] master 26/36: eina-cxx: Added move-constructors to lists
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c4faec118eea5536b59fff49e6b1d1141df85ea9 commit c4faec118eea5536b59fff49e6b1d1141df85ea9 Author: Felipe Magno de Almeida Date: Thu Jul 17 21:45:25 2014 -0300 eina-cxx: Added move-constructors to lists --- src/bindings/eina_cxx/eina_list.hh| 8 src/bindings/eina_cxx/eina_ptrlist.hh | 6 ++ 2 files changed, 14 insertions(+) diff --git a/src/bindings/eina_cxx/eina_list.hh b/src/bindings/eina_cxx/eina_list.hh index ec54f42..d0a856e 100644 --- a/src/bindings/eina_cxx/eina_list.hh +++ b/src/bindings/eina_cxx/eina_list.hh @@ -190,6 +190,8 @@ public: typedef typename _base_type::reverse_iterator reverse_iterator; typedef typename _base_type::const_reverse_iterator const_reverse_iterator; + list& operator=(list&& other) = default; + using _base_type::_base_type; using _base_type::clear; using _base_type::size; @@ -282,6 +284,8 @@ public: insert(end(), other.begin(), other.end()); return *this; } + list& operator=(list&& other) = default; + list(list&& other) = default; using _base_type::clear; using _base_type::size; @@ -438,6 +442,8 @@ public: typedef typename _base_type::reverse_iterator reverse_iterator; typedef typename _base_type::const_reverse_iterator const_reverse_iterator; + range_list& operator=(range_list&& other) = default; + using _base_type::_base_type; using _base_type::clear; using _base_type::size; @@ -502,6 +508,8 @@ public: _base_type::_handle = other._handle; return *this; } + range_list& operator=(range_list&& other) = default; + range_list(range_list&& other) = default; using _base_type::size; using _base_type::empty; diff --git a/src/bindings/eina_cxx/eina_ptrlist.hh b/src/bindings/eina_cxx/eina_ptrlist.hh index 140c5ce..42a930f 100644 --- a/src/bindings/eina_cxx/eina_ptrlist.hh +++ b/src/bindings/eina_cxx/eina_ptrlist.hh @@ -326,6 +326,9 @@ struct _ptr_list_common_base : _impl(_list) {} + _ptr_list_common_base& operator=(_ptr_list_common_base&& other) = default; + _ptr_list_common_base(_ptr_list_common_base&& other) = default; + /** * @brief Default constructor. Create an empty list. * @@ -431,6 +434,9 @@ public: ptr_list(clone_allocator_type alloc) : _base_type(alloc) {} + + ptr_list& operator=(ptr_list&& other) = default; + ptr_list(ptr_list&& other) = default; /** * @brief Construct an list object with @p n copies of @p t. --
[EGIT] [core/efl] master 07/36: eolian-cxx: Fixed a bug in class validator.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=027fa407bd68c02eeb2cc52f8fdf60694834ba7f commit 027fa407bd68c02eeb2cc52f8fdf60694834ba7f Author: Savio Sena Date: Thu Jul 17 00:38:13 2014 -0300 eolian-cxx: Fixed a bug in class validator. --- src/lib/eolian_cxx/eo_validate.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/eolian_cxx/eo_validate.hh b/src/lib/eolian_cxx/eo_validate.hh index e317f8f..4f131a0 100644 --- a/src/lib/eolian_cxx/eo_validate.hh +++ b/src/lib/eolian_cxx/eo_validate.hh @@ -13,7 +13,7 @@ namespace efl { namespace eolian { inline bool _is_valid(std::string const& value) { - return !value.empty() and isalpha(value[0]); + return !value.empty() and (isalpha(value[0]) || value[0] == '_'); } inline bool --
[EGIT] [core/efl] master 24/36: eina-cxx: Added range_list to range types for eina-cxx
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e256a92eb1a6b4ca927e1a52a2850ad8b39bd18c commit e256a92eb1a6b4ca927e1a52a2850ad8b39bd18c Author: Felipe Magno de Almeida Date: Thu Jul 17 15:29:16 2014 -0300 eina-cxx: Added range_list to range types for eina-cxx Added range_list which abstracts a ptr_list for wrapper types. --- src/bindings/eina_cxx/eina_list.hh| 260 +- src/bindings/eina_cxx/eina_ptrlist.hh | 352 +- src/bindings/eina_cxx/eina_range_types.hh | 1 + 3 files changed, 358 insertions(+), 255 deletions(-) diff --git a/src/bindings/eina_cxx/eina_list.hh b/src/bindings/eina_cxx/eina_list.hh index dbdfea9..ec54f42 100644 --- a/src/bindings/eina_cxx/eina_list.hh +++ b/src/bindings/eina_cxx/eina_list.hh @@ -73,6 +73,100 @@ struct _ptr_eo_list_iterator : _ptr_list_iterator using _base_type::native_handle; }; +/** + * @internal + */ +struct _eo_list_access_traits : _ptr_list_access_traits +{ + template + struct iterator + { +typedef _ptr_eo_list_iterator type; + }; + template + struct const_iterator : iterator {}; + template + static T& back(Eina_List* list) + { +return *static_cast(static_cast(&eina_list_last(list)->data)); + } + template + static T const& back(Eina_List const* list) + { +return _eo_list_access_traits::back(const_cast(list)); + } + template + static T& front(Eina_List* list) + { +return *static_cast(static_cast(&list->data)); + } + template + static T const& front(Eina_List const* list) + { +return _eo_list_access_traits::front(const_cast(list)); + } + template + static typename iterator::type begin(Eina_List* list) + { +return typename iterator::type(list, list); + } + template + static typename iterator::type end(Eina_List* list) + { +return typename iterator::type(list, nullptr); + } + template + static typename const_iterator::type begin(Eina_List const* list) + { +return _eo_list_access_traits::begin(const_cast(list)); + } + template + static typename const_iterator::type end(Eina_List const* list) + { +return _eo_list_access_traits::end(const_cast(list)); + } + template + static std::reverse_iterator::type> rbegin(Eina_List* list) + { +return std::reverse_iterator::type>(_eo_list_access_traits::end(list)); + } + template + static std::reverse_iterator::type> rend(Eina_List* list) + { +return std::reverse_iterator::type>(_eo_list_access_traits::begin(list)); + } + template + static std::reverse_iterator::type> rbegin(Eina_List const* list) + { +return _eo_list_access_traits::rbegin(const_cast(list)); + } + template + static std::reverse_iterator::type> rend(Eina_List const* list) + { +return _eo_list_access_traits::rend(const_cast(list)); + } + template + static typename const_iterator::type cbegin(Eina_List const* list) + { +return _eo_list_access_traits::begin(list); + } + template + static typename const_iterator::type cend(Eina_List const* list) + { +return _eo_list_access_traits::end(list); + } + template + static std::reverse_iterator::type> crbegin(Eina_List const* list) + { +return _eo_list_access_traits::rbegin(list); + } + template + static std::reverse_iterator::type> crend(Eina_List const* list) + { +return _eo_list_access_traits::rend(list); + } +}; + template class list : ptr_list::value @@ -253,21 +347,21 @@ public: reference front() { -return *static_cast(static_cast(&native_handle()->data)); +return _eo_list_access_traits::front(native_handle()); } reference back() { -return *static_cast(static_cast(&eina_list_last(native_handle())->data)); +return _eo_list_access_traits::back(native_handle()); } const_reference front() const { return const_cast<_self_type*>(this)->front(); } const_reference back() const { return const_cast<_self_type*>(this)->back(); } iterator begin() { -return iterator(native_handle(), native_handle()); +return _eo_list_access_traits::begin(native_handle()); } iterator end() { -return iterator(native_handle(), nullptr); +return _eo_list_access_traits::end(native_handle()); } const_iterator begin() const { @@ -287,11 +381,11 @@ public: } reverse_iterator rbegin() { -return reverse_iterator(end()); +return _eo_list_access_traits::rbegin(native_handle()); } reverse_iterator rend() { -return reverse_iterator(begin()); +return _eo_list_access_traits::rend(native_handle()); } const_reverse_iterator rbegin() const { @@ -324,6 +418,160 @@ bool operator!=(list const& rhs, list cons { return !(rhs == lhs); } + +template +class range_list : range_ptr_list +{ + typedef range_ptr_list _base_type; +public: + typedef typename _base_type::value_type value_type; + typedef typename _base_type::reference reference; +
[EGIT] [core/efl] master 31/36: eo-cxx: Added a few complex types to lookup table
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7e84cc01548568e5880d026b2103c8865188d0e9 commit 7e84cc01548568e5880d026b2103c8865188d0e9 Author: Felipe Magno de Almeida Date: Thu Jul 17 21:48:00 2014 -0300 eo-cxx: Added a few complex types to lookup table --- src/bin/eolian_cxx/type_lookup_table.cc | 10 +- src/lib/eolian_cxx/eo_validate.hh | 8 +++- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/bin/eolian_cxx/type_lookup_table.cc b/src/bin/eolian_cxx/type_lookup_table.cc index 19c84f4..6b89ab9 100644 --- a/src/bin/eolian_cxx/type_lookup_table.cc +++ b/src/bin/eolian_cxx/type_lookup_table.cc @@ -17,14 +17,14 @@ type_lookup_table {"Eina_Inlist *", eolian_type::complex_, false, "efl::eina::range_inlist", {"eina-cxx/eina_inlist.hh"}}, {"Eina_Inlist *", eolian_type::complex_, true, "efl::eina::inlist", {"eina-cxx/eina_inlist.hh"}}, {"Eina_Iterator *", eolian_type::complex_, false, "efl::eina::iterator", {"eina-cxx/eina_iterator.hh"}}, - {"Eina_List *", eolian_type::complex_, false, "efl::eina::range_ptr_list", {"eina-cxx/eina_ptrlist.hh"}}, - {"Eina_List *", eolian_type::complex_, true, "efl::eina::ptr_list", {"eina-cxx/eina_ptrlist.hh"}}, - //{"Eina_List *", eolian_type::complex_, false, "efl::eina::ptr_list", {"eina-cxx/eina_ptrlist.hh"}}, + {"Eina_List *", eolian_type::complex_, false, "efl::eina::range_list", {"eina-cxx/eina_list.hh"}}, + {"Eina_List *", eolian_type::complex_, true, "efl::eina::list", {"eina-cxx/eina_list.hh"}}, {"Eo *", eolian_type::simple_, true, "efl::eo::base", {"eo_base.hh"}}, - //{"Evas_Object *", eolian_type::simple_, false, "evas::object", {"canvas/evas_object.eo.hh"}}, + //{"Evas_Object_Box_Layout", eolian_type::callback_, {"Evas.h"}}, + {"Evas_Object *", eolian_type::simple_, false, "evas::object", {"canvas/evas_object.eo.hh"}}, {"char *", eolian_type::simple_, true, "std::unique_ptr", {"memory"}}, {"const Eina_Inlist *", eolian_type::complex_, false, "efl::eina::range_inlist", {"eina-cxx/eina_inlist.hh"}}, - {"const Eina_List *", eolian_type::complex_, false, "efl::eina::range_ptr_list", {"eina-cxx/eina_ptrlist.hh"}}, + {"const Eina_List *", eolian_type::complex_, false, "efl::eina::range_list", {"eina-cxx/eina_ptrlist.hh"}}, {"const char *", eolian_type::simple_, false, "std::string", {"string"}} }; diff --git a/src/lib/eolian_cxx/eo_validate.hh b/src/lib/eolian_cxx/eo_validate.hh index 53bfec5..bca15c6 100644 --- a/src/lib/eolian_cxx/eo_validate.hh +++ b/src/lib/eolian_cxx/eo_validate.hh @@ -19,8 +19,8 @@ _is_valid(std::string const& value) inline bool _is_valid(eolian_type_instance const& type) { - if (type.empty() || (*type.rbegin()).category == eolian_type::complex_) - return false; + // if (type.empty() || (*type.rbegin()).category == eolian_type::complex_) + // return false; for (auto rit = ++type.rbegin(), last = type.rend(); rit != last; ++rit) { if ((*rit).binding.empty() || (*rit).category != eolian_type::complex_) @@ -56,9 +56,7 @@ _validate(T const& val, eo_class const& cls) if(!_is_valid(val)) { static_cast(cls); -#ifndef NDEBUG - std::abort(); -#endif +assert(false && "Failed identifier validation"); } } --
[EGIT] [core/efl] master 36/36: eolian-cxx: Fixed exapmle with support for complex types
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b1c9ca5c24911179663e51106d5426f35cf9dade commit b1c9ca5c24911179663e51106d5426f35cf9dade Author: Felipe Magno de Almeida Date: Fri Jul 18 17:58:45 2014 -0300 eolian-cxx: Fixed exapmle with support for complex types Automatic conversion of Evas_Object* to evas::object wrapper broke the example. Fixed it by using the new feature :). --- src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc b/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc index d2eaac2..264ece2 100644 --- a/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc +++ b/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc @@ -86,7 +86,7 @@ example_complex_types() text1.visibility_set(true); int t1w, t1h; text1.size_get(&t1w, &t1h); - grid.pack(text1._eo_ptr(), 1, 1, t1w, t1h); + grid.pack(text1, 1, 1, t1w, t1h); efl::evas::text text2(efl::eo::parent = canvas); text2.style_set(EVAS_TEXT_STYLE_PLAIN); --
[EGIT] [core/efl] master 19/36: eolian-cxx: Fixed double qualifying operator on generated code
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bb1e5248c4f45b530b9bf643c823e62996311d4d commit bb1e5248c4f45b530b9bf643c823e62996311d4d Author: Felipe Magno de Almeida Date: Wed Jul 16 20:12:58 2014 -0300 eolian-cxx: Fixed double qualifying operator on generated code Fixed the generation of double qualifying operators on extension inheritance for classes defined in the global namespace. --- src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh b/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh index 259fead..1630335 100644 --- a/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh +++ b/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh @@ -43,11 +43,13 @@ operator<<(std::ostream& out, class_extensions const& x) extensions_container_type::const_iterator last = cls.extensions.end(); for (it = first; it != last; ++it) { -if (it != first) out << ","; +if (it != first) out << ",\n"; out << tab(2) << "efl::eo::detail::extension_inheritance<" -<< *it << ">::type< ::" -<< cls.name_space << "::" << cls.name << ">"; +<< *it << ">::template type< ::"; +if(!cls.name_space.empty()) + out << cls.name_space << "::"; +out << cls.name << ">"; } out << endl; return out; --
[EGIT] [core/efl] master 33/36: eolian-cxx: Various and various fixes with callbacks
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=907544be7b0e3ac241130193518b6158822ceae0 commit 907544be7b0e3ac241130193518b6158822ceae0 Author: Felipe Magno de Almeida Date: Thu Jul 17 21:49:12 2014 -0300 eolian-cxx: Various and various fixes with callbacks Mimic the callback function generation for other functions that were being generated incorrectly and inconsistently. --- .../grammar/eo_class_constructors_generator.hh | 3 +- .../grammar/eo_class_events_generator.hh | 50 -- .../grammar/eo_class_functions_generator.hh| 11 + .../grammar/inheritance_base_generator.hh | 29 ++--- src/lib/eolian_cxx/grammar/parameters_generator.hh | 45 +++ src/lib/eolian_cxx/grammar/type_generator.hh | 23 +- 6 files changed, 140 insertions(+), 21 deletions(-) diff --git a/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh b/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh index 1630335..5d7ab1f 100644 --- a/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh +++ b/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh @@ -209,7 +209,8 @@ operator<<(std::ostream& out, eo_class_constructors const& x) if (callback_iter != (*it).params.cend()) { out << tab(2) - << "F* _tmp_f = new F(std::move(" + << "typedef typename std::remove_reference::type function_type;" << endl + << "function_type* _tmp_f = new F(std::forward(" << (*callback_iter).name << "));" << endl; } diff --git a/src/lib/eolian_cxx/grammar/eo_class_events_generator.hh b/src/lib/eolian_cxx/grammar/eo_class_events_generator.hh index da796ae..d35fc46 100644 --- a/src/lib/eolian_cxx/grammar/eo_class_events_generator.hh +++ b/src/lib/eolian_cxx/grammar/eo_class_events_generator.hh @@ -10,12 +10,32 @@ namespace efl { namespace eolian { namespace grammar { +struct add_cast_to_t +{ + add_cast_to_t(bool b) +: _b(b) + { + } + + bool _b; +}; + +inline std::ostream& +operator<<(std::ostream& out, add_cast_to_t x) +{ + if(x._b) +out << "static_cast(this)->"; + return out; +} + struct event_callback_add { eo_event const& _event; eo_class const& _cls; - event_callback_add(eo_event const& event, eo_class const& cls) - : _event(event), _cls(cls) + bool _add_cast_to_t; + event_callback_add(eo_event const& event, eo_class const& cls + , bool add_cast_to_t) + : _event(event), _cls(cls), _add_cast_to_t(add_cast_to_t) {} }; @@ -28,13 +48,16 @@ operator<<(std::ostream& out, event_callback_add const& x) << tab(11) << "::efl::eo::callback_priority priority_ =" << endl << tab(11) << "::efl::eo::callback_priorities::default_)" << endl << tab(1) << "{" << endl - << tab(2) << "::std::unique_ptr f ( new F(std::move(callback_)) );" << endl - << tab(2) << "eo_do(_eo_ptr()," << endl + << tab(2) << "typedef typename std::remove_reference::type function_type;" << endl + << tab(2) << "::std::unique_ptr f ( new function_type(std::move(callback_)) );" << endl + << tab(2) << "eo_do(" << add_cast_to_t(x._add_cast_to_t) << "_eo_ptr()," << endl << tab(4) << "eo_event_callback_priority_add" << endl << tab(4) << "(" << x._event.eo_name << ", priority_," << endl - << tab(4) << "&efl::eo::_detail::event_callback<" << x._cls.name << ", F>, f.get()));" << endl + << tab(4) << "&efl::eo::_detail::event_callback<" << x._cls.name_space << "::" << x._cls.name << ", function_type>, f.get()));" << endl << tab(2) << "return ::efl::eo::make_signal_connection" << endl - << tab(3) << "(f, this->_eo_ptr(), &efl::eo::_detail::event_callback<" << x._cls.name << ", F>," << endl + << tab(3) << "(f, " << add_cast_to_t(x._add_cast_to_t) + << "_eo_ptr(), &efl::eo::_detail::event_callback<" + << x._cls.name_space << "::" << x._cls.name << ", function_type>," << endl << tab(3) << x._event.eo_name << " );" << endl << tab(1) << "}" << endl; return out; @@ -43,8 +66,9 @@ operator<<(std::ostream& out, event_callback_add const& x) struct event_callback_call { eo_event const& _event; - event_callback_call(eo_event const& event) - : _event(event) + bool _add_cast_to_t; + event_callback_call(eo_event const& event, bool add_cast_to_t) + : _event(event), _add_cast_to_t(add_cast_to_t) {} }; @@ -55,7 +79,7 @@ operator<<(std::ostream& out, event_callback_call const& x) << tab(1) << "void" << endl << tab(1) << "event_" << x._event.name << "_callback_call(T* info)" << endl << tab(1) << "{" << endl - << tab(2) << "eo_do(_eo_ptr(), eo_event_callback_call" << endl + << tab(2) << "eo_do(" << add_cast_to_t(x._add_cast_to_t) << "_eo
[EGIT] [core/efl] master 22/36: eina-cxx: eldbus-cxx: eo-cxx: Fixed test includes and header installation
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d21e400425527cc24bd7bc43ab025021e06231b0 commit d21e400425527cc24bd7bc43ab025021e06231b0 Author: Felipe Magno de Almeida Date: Thu Jul 17 14:07:09 2014 -0300 eina-cxx: eldbus-cxx: eo-cxx: Fixed test includes and header installation --- src/Makefile_Eina_Cxx.am | 3 +++ src/Makefile_Eldbus_Cxx.am | 6 +++--- src/Makefile_Eo_Cxx.am | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Makefile_Eina_Cxx.am b/src/Makefile_Eina_Cxx.am index 0acb420..94b5ab2 100644 --- a/src/Makefile_Eina_Cxx.am +++ b/src/Makefile_Eina_Cxx.am @@ -9,14 +9,17 @@ bindings/eina_cxx/Eina.hh installed_einacxxheadersdir = $(includedir)/eina-cxx-@VMAJ@/eina-cxx dist_installed_einacxxheaders_DATA = \ bindings/eina_cxx/eina_accessor.hh \ +bindings/eina_cxx/eina_array.hh \ bindings/eina_cxx/eina_clone_allocators.hh \ bindings/eina_cxx/eina_error.hh \ +bindings/eina_cxx/eina_eo_base_fwd.hh \ bindings/eina_cxx/eina_fold.hh \ bindings/eina_cxx/eina_inarray.hh \ bindings/eina_cxx/eina_inlist.hh \ bindings/eina_cxx/eina_integer_sequence.hh \ bindings/eina_cxx/eina_iterator.hh \ bindings/eina_cxx/eina_lists_auxiliary.hh \ +bindings/eina_cxx/eina_list.hh \ bindings/eina_cxx/eina_log.hh \ bindings/eina_cxx/eina_optional.hh \ bindings/eina_cxx/eina_ptrarray.hh \ diff --git a/src/Makefile_Eldbus_Cxx.am b/src/Makefile_Eldbus_Cxx.am index 17b0941..d4140e8 100644 --- a/src/Makefile_Eldbus_Cxx.am +++ b/src/Makefile_Eldbus_Cxx.am @@ -36,9 +36,9 @@ tests_eldbus_cxx_eldbus_cxx_suite_CPPFLAGS = \ -I$(top_builddir)/src/bindings/eldbus_cxx \ -I$(top_srcdir)/src/bindings/eldbus_cxx \ -I$(top_builddir)/src/lib/efl \ -@CHECK_CFLAGS@ \ - @ELDBUS_CFLAGS@ \ --DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eldbus\" +-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eldbus\" \ +@CHECK_CFLAGS@ @ECORE_CXX_CFLAGS@ @EINA_CXX_CFLAGS@ @EINA_CFLAGS@ \ +@ECORE_CFLAGS@ @EO_CFLAGS@ @EO_CXX_CFLAGS@ @ELDBUS_CFLAGS@ tests_eldbus_cxx_eldbus_cxx_suite_LDADD = @CHECK_LIBS@ @USE_ELDBUS_LIBS@ tests_eldbus_cxx_eldbus_cxx_suite_DEPENDENCIES = @USE_ELDBUS_INTERNAL_LIBS@ diff --git a/src/Makefile_Eo_Cxx.am b/src/Makefile_Eo_Cxx.am index ffb0e1d..21987b5 100644 --- a/src/Makefile_Eo_Cxx.am +++ b/src/Makefile_Eo_Cxx.am @@ -10,6 +10,7 @@ bindings/eo_cxx/Eo.hh installed_eocxxheadersdir = $(includedir)/eo-cxx-@VMAJ@/ dist_installed_eocxxheaders_DATA = \ bindings/eo_cxx/eo_base.hh \ +bindings/eo_cxx/eo_event.hh \ bindings/eo_cxx/eo_init.hh \ bindings/eo_cxx/eo_wref.hh \ bindings/eo_cxx/eo_inherit.hh \ --
[EGIT] [core/efl] master 04/36: eolian-cxx: Added tests.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ac8975a73f90c07dfa6f9587b72cfde1e6014bdb commit ac8975a73f90c07dfa6f9587b72cfde1e6014bdb Author: Savio Sena Date: Wed Jul 16 16:14:17 2014 -0300 eolian-cxx: Added tests. --- src/Makefile_Eolian_Cxx.am | 39 + src/tests/eolian_cxx/eolian_cxx_suite.cc | 103 +++ src/tests/eolian_cxx/eolian_cxx_test_binding.cc | 2 + src/tests/eolian_cxx/eolian_cxx_test_generate.cc | 21 + src/tests/eolian_cxx/eolian_cxx_test_parse.cc| 30 +++ src/tests/eolian_cxx/eolian_cxx_test_wrapper.cc | 2 + 6 files changed, 197 insertions(+) diff --git a/src/Makefile_Eolian_Cxx.am b/src/Makefile_Eolian_Cxx.am index e31be2b..af89d12 100644 --- a/src/Makefile_Eolian_Cxx.am +++ b/src/Makefile_Eolian_Cxx.am @@ -49,5 +49,44 @@ bin_eolian_cxx_eolian_cxx_DEPENDENCIES = @USE_EOLIAN_INTERNAL_LIBS@ include Makefile_Eolian_Cxx_Helper.am + +### Unit tests + +if EFL_ENABLE_TESTS + +check_PROGRAMS += tests/eolian_cxx/eolian_cxx_suite +TESTS += tests/eolian_cxx/eolian_cxx_suite + +tests_eolian_cxx_eolian_cxx_suite_SOURCES = \ +tests/eolian_cxx/eolian_cxx_suite.cc \ +tests/eolian_cxx/eolian_cxx_test_parse.cc \ +tests/eolian_cxx/eolian_cxx_test_generate.cc + +tests_eolian_cxx_eolian_cxx_suite_CXXFLAGS = \ +-I$(top_builddir)/src/lib/efl \ +-I$(top_srcdir)/src/bin/eolian_cxx \ +-I$(top_srcdir)/src/lib/eolian_cxx \ +-DTESTS_WD=\"`pwd`\" \ +-DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests/eolian_cxx\" \ +-DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)/src/tests/eolian_cxx\" \ +-DPACKAGE_DATA_DIR=\"$(datadir)/eolian_cxx\" \ +-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eolian_cxx\" \ +@CHECK_CFLAGS@ @EOLIAN_CXX_CFLAGS@ @EINA_CXX_CFLAGS@ \ +@EOLIAN_CFLAGS@ @EINA_CFLAGS@ @EO_CFLAGS@ + +tests_eolian_cxx_eolian_cxx_suite_CFLAGS = ${tests_eolian_cxx_eolian_cxx_suite_CXXFLAGS} +tests_eolian_cxx_eolian_cxx_suite_CPPFLAGS = ${tests_eolian_cxx_eolian_cxx_suite_CXXFLAGS} +tests_eolian_cxx_eolian_cxx_suite_LDADD = \ +@CHECK_LIBS@ @USE_EO_LIBS@ @USE_EINA_LIBS@ @USE_EOLIAN_LIBS@ +tests_eolian_cxx_eolian_cxx_suite_DEPENDENCIES = @USE_EOLIAN_INTERNAL_LIBS@ + endif +EXTRA_DIST += \ +tests/eolian_cxx/data/base.eo \ +tests/eolian_cxx/data/class_simple.eo \ +tests/eolian_cxx/data/scope.eo \ +tests/eolian_cxx/data/ctor_dtor.eo \ +tests/eolian_cxx/data/complex_type.eo + +endif diff --git a/src/tests/eolian_cxx/eolian_cxx_suite.cc b/src/tests/eolian_cxx/eolian_cxx_suite.cc new file mode 100644 index 000..86747cb --- /dev/null +++ b/src/tests/eolian_cxx/eolian_cxx_suite.cc @@ -0,0 +1,103 @@ +#include +#include +#include +#include + +void eolian_cxx_test_parse(TCase* tc); +void eolian_cxx_test_generate(TCase* tc); + +typedef struct _Eolian_Cxx_Test_Case Eolian_Cxx_Test_Case; +struct _Eolian_Cxx_Test_Case +{ + const char *test_case; + void (*build)(TCase *tc); +}; + +static const Eolian_Cxx_Test_Case etc[] = { + { "Eolian-Cxx Parsing", eolian_cxx_test_parse }, + { "Eolian-Cxx Generation", eolian_cxx_test_generate }, + { NULL, NULL } +}; + +static void +_list_tests(void) +{ + const Eolian_Cxx_Test_Case *itr; + + itr = etc; + fputs("Available Test Cases:\n", stderr); + for (; itr->test_case; itr++) + fprintf(stderr, "\t%s\n", itr->test_case); +} + +static bool +_use_test(int argc, const char **argv, const char *test_case) +{ + if (argc < 1) + return 1; + + for (; argc > 0; argc--, argv++) + if (strcmp(test_case, *argv) == 0) + return 1; + return 0; +} + +Suite * +eolian_cxx_build_suite(int argc, const char **argv) +{ + TCase *tc; + Suite *s; + int i; + + s = suite_create("Eolian C++"); + + for (i = 0; etc[i].test_case; ++i) + { +if (!_use_test(argc, argv, etc[i].test_case)) + continue; + +tc = tcase_create(etc[i].test_case); +tcase_set_timeout(tc, 0); + +etc[i].build(tc); +suite_add_tcase(s, tc); + } + + return s; +} + +int main(int argc, char* argv[]) +{ + Suite *s; + SRunner *sr; + int i, failed_count; + + for (i = 1; i < argc; i++) + if ((strcmp(argv[i], "-h") == 0) || + (strcmp(argv[i], "--help") == 0)) +{ + fprintf(stderr, "Usage:\n\t%s [test_case1 .. [test_caseN]]\n", + argv[0]); + _list_tests(); + return 0; +} + else if ((strcmp(argv[i], "-l") == 0) || + (strcmp(argv[i], "--list") == 0)) +{ + _list_tests(); + return 0; +} + + putenv(const_cast("EFL_RUN_IN_TREE=1")); + + s = eolian_cxx_build_suite(argc - 1, (const char **)argv + 1); + sr = srunner_create(s); + + srunner_set_xml(sr, TESTS_BUILD_DIR "/check-results.xml"); + + srunner_run_all(sr, CK_ENV); + failed_count = srunner_ntests_failed(sr); + srunner_free(sr); + + return (failed_count == 0) ? 0 : 255; +} diff --git a/src/tests/eolian_cxx/eolian_cxx_test_binding.cc
[EGIT] [core/efl] master 13/36: eolian-cxx: Added eo_base extension_inheritance
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bde4b6e9dfd01348c0aa81bd2bf625e8d9ee5e50 commit bde4b6e9dfd01348c0aa81bd2bf625e8d9ee5e50 Author: Felipe Magno de Almeida Date: Wed Jul 16 20:13:46 2014 -0300 eolian-cxx: Added eo_base extension_inheritance Added eo::base as a partial specialization for extension inheritance, since eo::base is not generated. --- src/bindings/eo_cxx/eo_base.hh | 21 + 1 file changed, 21 insertions(+) diff --git a/src/bindings/eo_cxx/eo_base.hh b/src/bindings/eo_cxx/eo_base.hh index a99d614..cdb8e64 100644 --- a/src/bindings/eo_cxx/eo_base.hh +++ b/src/bindings/eo_cxx/eo_base.hh @@ -230,6 +230,27 @@ inline bool operator!=(base const& lhs, base const& rhs) return !(lhs == rhs); } +namespace detail { + +template +struct extension_inheritance; + +template<> +struct extension_inheritance +{ + template + struct type + { + operator base() const + { + return base(eo_ref(static_cast(this)->_eo_ptr())); + } + + }; +}; + +} + /// @brief Downcast @p U to @p T. /// /// @param T An EO C++ Class. --
[EGIT] [core/efl] master 14/36: eo-cxx: Fixed duplicated constructors.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b9c30eac7144c918b4ffc12b25d09bcac7f3ea6c commit b9c30eac7144c918b4ffc12b25d09bcac7f3ea6c Author: Savio Sena Date: Thu Jul 17 04:04:51 2014 -0300 eo-cxx: Fixed duplicated constructors. --- src/bindings/eo_cxx/eo_base.hh | 5 - 1 file changed, 5 deletions(-) diff --git a/src/bindings/eo_cxx/eo_base.hh b/src/bindings/eo_cxx/eo_base.hh index cdb8e64..8801b7f 100644 --- a/src/bindings/eo_cxx/eo_base.hh +++ b/src/bindings/eo_cxx/eo_base.hh @@ -61,11 +61,6 @@ struct base other._eo_raw = nullptr; } - base(base const& other) - : _eo_raw( detail::ref(other._eo_ptr()) ) - { - } - /// @brief Assignment operator. /// base& operator=(base const& other) --
[EGIT] [core/efl] master 02/36: tests: Added config.h to tests.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=34c3d4ded7dc0a3b1f7e18750cd8812063a7d25d commit 34c3d4ded7dc0a3b1f7e18750cd8812063a7d25d Author: Savio Sena Date: Fri Jul 11 20:19:01 2014 -0300 tests: Added config.h to tests. --- src/examples/eina_cxx/eina_cxx_list_01.cc | 4 src/examples/eina_cxx/eina_cxx_thread_01.cc| 7 +-- src/tests/ecore_cxx/ecore_cxx_suite.cc | 3 +++ src/tests/ecore_cxx/ecore_cxx_test_safe_call.cc| 3 +++ src/tests/eet_cxx/eet_cxx_suite.cc | 4 src/tests/eet_cxx/eet_cxx_test_descriptors.cc | 4 src/tests/eina_cxx/eina_cxx_suite.cc | 6 +- src/tests/eina_cxx/eina_cxx_test_accessor.cc | 4 src/tests/eina_cxx/eina_cxx_test_error.cc | 4 src/tests/eina_cxx/eina_cxx_test_inarray.cc| 4 src/tests/eina_cxx/eina_cxx_test_inlist.cc | 4 src/tests/eina_cxx/eina_cxx_test_iterator.cc | 4 src/tests/eina_cxx/eina_cxx_test_log.cc| 4 src/tests/eina_cxx/eina_cxx_test_optional.cc | 4 src/tests/eina_cxx/eina_cxx_test_stringshare.cc| 4 src/tests/eina_cxx/eina_cxx_test_thread.cc | 4 src/tests/eina_cxx/eina_cxx_test_value.cc | 4 src/tests/eldbus_cxx/eldbus_cxx_suite.cc | 4 src/tests/eldbus_cxx/eldbus_cxx_test_eldbus_client.cc | 4 src/tests/eldbus_cxx/eldbus_cxx_test_eldbus_connect.cc | 4 20 files changed, 80 insertions(+), 3 deletions(-) diff --git a/src/examples/eina_cxx/eina_cxx_list_01.cc b/src/examples/eina_cxx/eina_cxx_list_01.cc index 0cb0381..f74f9d6 100644 --- a/src/examples/eina_cxx/eina_cxx_list_01.cc +++ b/src/examples/eina_cxx/eina_cxx_list_01.cc @@ -1,6 +1,10 @@ //Compile with: //gcc -g eina_list_01.c -o eina_list_01 `pkg-config --cflags --libs eina` +#ifdef HAVE_CONFIG_H +# include +#endif + #include #include diff --git a/src/examples/eina_cxx/eina_cxx_thread_01.cc b/src/examples/eina_cxx/eina_cxx_thread_01.cc index 64c7525..b47b1a6 100644 --- a/src/examples/eina_cxx/eina_cxx_thread_01.cc +++ b/src/examples/eina_cxx/eina_cxx_thread_01.cc @@ -1,6 +1,10 @@ //Compile with: //gcc -g eina_list_01.c -o eina_list_01 `pkg-config --cflags --libs eina` +#ifdef HAVE_CONFIG_H +# include +#endif + #include #include @@ -13,7 +17,6 @@ namespace eina = efl::eina; void thread1(eina::mutex&) { - } int main() @@ -27,6 +30,6 @@ int main() eina::unique_lock l(m); eina::thread thread1(&::thread1, eina::ref(m)); - + thread1.join(); } diff --git a/src/tests/ecore_cxx/ecore_cxx_suite.cc b/src/tests/ecore_cxx/ecore_cxx_suite.cc index 9394672..d2888ef 100644 --- a/src/tests/ecore_cxx/ecore_cxx_suite.cc +++ b/src/tests/ecore_cxx/ecore_cxx_suite.cc @@ -1,3 +1,6 @@ +#ifdef HAVE_CONFIG_H +# include +#endif #include "Ecore.hh" diff --git a/src/tests/ecore_cxx/ecore_cxx_test_safe_call.cc b/src/tests/ecore_cxx/ecore_cxx_test_safe_call.cc index 9be7d73..1425041 100644 --- a/src/tests/ecore_cxx/ecore_cxx_test_safe_call.cc +++ b/src/tests/ecore_cxx/ecore_cxx_test_safe_call.cc @@ -1,3 +1,6 @@ +#ifdef HAVE_CONFIG_H +# include +#endif #include "Ecore.hh" #include "Eina.hh" diff --git a/src/tests/eet_cxx/eet_cxx_suite.cc b/src/tests/eet_cxx/eet_cxx_suite.cc index 26e658b..fa4465e 100644 --- a/src/tests/eet_cxx/eet_cxx_suite.cc +++ b/src/tests/eet_cxx/eet_cxx_suite.cc @@ -1,4 +1,8 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + #include "Eet.hh" #include diff --git a/src/tests/eet_cxx/eet_cxx_test_descriptors.cc b/src/tests/eet_cxx/eet_cxx_test_descriptors.cc index bc21418..05af641 100644 --- a/src/tests/eet_cxx/eet_cxx_test_descriptors.cc +++ b/src/tests/eet_cxx/eet_cxx_test_descriptors.cc @@ -1,4 +1,8 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + #include "Eet.hh" #include diff --git a/src/tests/eina_cxx/eina_cxx_suite.cc b/src/tests/eina_cxx/eina_cxx_suite.cc index 942d539..7555805 100644 --- a/src/tests/eina_cxx/eina_cxx_suite.cc +++ b/src/tests/eina_cxx/eina_cxx_suite.cc @@ -1,4 +1,8 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + #include "Eina.hh" #include @@ -71,7 +75,7 @@ eina_build_suite(int argc, const char **argv) Suite *s; int i; - s = suite_create("Eina"); + s = suite_create("Eina C++"); for (i = 0; etc[i].test_case; ++i) { diff --git a/src/tests/eina_cxx/eina_cxx_test_accessor.cc b/src/tests/eina_cxx/eina_cxx_test_accessor.cc index 21ad5e0..8d04ecc 100644 --- a/src/tests/eina_cxx/eina_cxx_test_accessor.cc +++ b/src/tests/eina_cxx/eina_cxx_test_accessor.cc @@ -1,4 +1,8 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + #include "Eina.hh" #include diff --git a/src/tests/eina_cxx/eina_cxx_test_error.cc b/src/tests/eina_cxx/eina_cxx_test_error.cc index fb3a6aa..8cea5b5 100644 --- a/src/tests/eina_cxx/eina_cxx_test_error.cc
[EGIT] [core/efl] master 34/36: eolian-cxx: Added callback test
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9c6c7728c0c1bf18018a2da7b33d55f128c527b1 commit 9c6c7728c0c1bf18018a2da7b33d55f128c527b1 Author: Felipe Magno de Almeida Date: Fri Jul 18 17:25:06 2014 -0300 eolian-cxx: Added callback test Added test for callback generation and uses --- src/Makefile_Eolian_Cxx.am | 17 +++-- src/tests/eolian_cxx/callback.c | 48 src/tests/eolian_cxx/callback.eo | 39 +++ src/tests/eolian_cxx/eolian_cxx_suite.cc | 2 + src/tests/eolian_cxx/eolian_cxx_test_callback.cc | 48 src/tests/eolian_cxx/eolian_cxx_test_parse.cc| 5 ++- 6 files changed, 153 insertions(+), 6 deletions(-) diff --git a/src/Makefile_Eolian_Cxx.am b/src/Makefile_Eolian_Cxx.am index 6bfc6c1..7de22d2 100644 --- a/src/Makefile_Eolian_Cxx.am +++ b/src/Makefile_Eolian_Cxx.am @@ -49,32 +49,39 @@ bin_eolian_cxx_eolian_cxx_LDADD = @CHECK_LIBS@ @USE_EOLIAN_LIBS@ bin_eolian_cxx_eolian_cxx_DEPENDENCIES = @USE_EOLIAN_INTERNAL_LIBS@ -include Makefile_Eolian_Cxx_Helper.am - ### Unit tests if EFL_ENABLE_TESTS +BUILT_SOURCES += \ + tests/eolian_cxx/callback.eo.c \ + tests/eolian_cxx/callback.eo.h + check_PROGRAMS += tests/eolian_cxx/eolian_cxx_suite TESTS += tests/eolian_cxx/eolian_cxx_suite tests_eolian_cxx_eolian_cxx_suite_SOURCES = \ tests/eolian_cxx/eolian_cxx_suite.cc \ tests/eolian_cxx/eolian_cxx_test_parse.cc \ +tests/eolian_cxx/callback.c \ +tests/eolian_cxx/eolian_cxx_test_callback.cc \ tests/eolian_cxx/eolian_cxx_test_generate.cc +tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-eolian_cxx_test_callback.$(OBJEXT): tests/eolian_cxx/callback.eo.hh + tests_eolian_cxx_eolian_cxx_suite_CXXFLAGS = \ -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/bin/eolian_cxx \ --I$(top_srcdir)/src/lib/eolian_cxx \ +-I$(top_builddir)/src/tests/eolian_cxx \ -DTESTS_WD=\"`pwd`\" \ -DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests/eolian_cxx\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)/src/tests/eolian_cxx\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/eolian_cxx\" \ -DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eolian_cxx\" \ @CHECK_CFLAGS@ @EOLIAN_CXX_CFLAGS@ @EINA_CXX_CFLAGS@ \ -@EOLIAN_CFLAGS@ @EINA_CFLAGS@ @EO_CFLAGS@ +@EOLIAN_CFLAGS@ @EINA_CFLAGS@ @EO_CFLAGS@ @ECORE_CFLAGS@ \ +@EO_CXX_CFLAGS@ tests_eolian_cxx_eolian_cxx_suite_CFLAGS = ${tests_eolian_cxx_eolian_cxx_suite_CXXFLAGS} tests_eolian_cxx_eolian_cxx_suite_CPPFLAGS = ${tests_eolian_cxx_eolian_cxx_suite_CXXFLAGS} @@ -84,4 +91,6 @@ tests_eolian_cxx_eolian_cxx_suite_DEPENDENCIES = @USE_EOLIAN_INTERNAL_LIBS@ endif +include Makefile_Eolian_Cxx_Helper.am + endif diff --git a/src/tests/eolian_cxx/callback.c b/src/tests/eolian_cxx/callback.c new file mode 100644 index 000..dc09118 --- /dev/null +++ b/src/tests/eolian_cxx/callback.c @@ -0,0 +1,48 @@ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +#include + +#include "callback.eo.h" + +struct _Callback_Data {}; +typedef struct _Callback_Data Callback_Data; + +#define MY_CLASS CALLBACK_CLASS + +static void _callback_default_constructor(Eo *obj EINA_UNUSED, Callback_Data *pd EINA_UNUSED) +{ + eo_do_super(obj, MY_CLASS, eo_constructor()); +} + +static void _callback_constructor(Eo *obj EINA_UNUSED, Callback_Data *pd EINA_UNUSED, Ecore_Cb cb, void *data) +{ + eo_do_super(obj, MY_CLASS, eo_constructor()); + cb(data); +} + +static void _callback_constructor2(Eo *obj EINA_UNUSED, Callback_Data *pd EINA_UNUSED, Ecore_Cb cb, void *data + , Ecore_Cb cb2 EINA_UNUSED) +{ + eo_do_super(obj, MY_CLASS, eo_constructor()); + cb(data); +} + +static void _callback_onecallback(Eo *obj EINA_UNUSED, Callback_Data *pd EINA_UNUSED, Ecore_Cb cb, void *data) +{ + cb(data); +} + +static void _callback_twocallback(Eo *obj EINA_UNUSED, Callback_Data *pd EINA_UNUSED, Ecore_Cb cb, void *data + , Ecore_Cb cb2 EINA_UNUSED) +{ + cb(data); +} + +#include "callback.eo.c" + diff --git a/src/tests/eolian_cxx/callback.eo b/src/tests/eolian_cxx/callback.eo new file mode 100644 index 000..27befd2 --- /dev/null +++ b/src/tests/eolian_cxx/callback.eo @@ -0,0 +1,39 @@ +class Callback (Eo.Base) +{ + legacy_prefix: null; + data: Callback_Data; + constructors { + default_constructor { + } + constructor { + params { +@in Ecore_Cb cb; +@in void* data; + } + } + constructor2 { + params { +@in Ecore_Cb cb; +@in void* data; +@in Ecore_Cb cb2; + } + } + } + methods { + onecallback { + params { + @in Ecore_Cb cb; + @in void* data; + } + } + twocallback { + params { + @in Ecore_Cb cb; + @in void* data; +
[EGIT] [core/efl] master 20/36: eina-cxx: Fixed includ'ing list and array containers and fixed constructor
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=10502307a754201f261634481f475d747adf1a95 commit 10502307a754201f261634481f475d747adf1a95 Author: Felipe Magno de Almeida Date: Thu Jul 17 14:02:23 2014 -0300 eina-cxx: Fixed includ'ing list and array containers and fixed constructor Added include for eina_list and eina_array for Eina.hh and fixed the eina_ptrlist constructor receiving a raw Eina_List*. --- src/bindings/eina_cxx/Eina.hh | 2 ++ src/bindings/eina_cxx/eina_ptrlist.hh | 1 + 2 files changed, 3 insertions(+) diff --git a/src/bindings/eina_cxx/Eina.hh b/src/bindings/eina_cxx/Eina.hh index ed25c3c..ffc6e49 100644 --- a/src/bindings/eina_cxx/Eina.hh +++ b/src/bindings/eina_cxx/Eina.hh @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/src/bindings/eina_cxx/eina_ptrlist.hh b/src/bindings/eina_cxx/eina_ptrlist.hh index c0f8776..1cddce0 100644 --- a/src/bindings/eina_cxx/eina_ptrlist.hh +++ b/src/bindings/eina_cxx/eina_ptrlist.hh @@ -517,6 +517,7 @@ struct _ptr_list_common_base struct _ptr_list_impl : CloneAllocator { _ptr_list_impl() : _list(0) {} +_ptr_list_impl(Eina_List* list) : _list(list) {} _ptr_list_impl(CloneAllocator allocator) : clone_allocator_type(allocator), _list(0) {} --
[EGIT] [core/efl] master 17/36: eolian-cxx: Updated the examples according to the new syntax.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f60394c1af82daf8f38918a678081168940df340 commit f60394c1af82daf8f38918a678081168940df340 Author: Savio Sena Date: Thu Jul 17 04:14:01 2014 -0300 eolian-cxx: Updated the examples according to the new syntax. --- src/examples/eolian_cxx/eolian_cxx_callbacks_01.cc | 4 ++-- .../eolian_cxx/eolian_cxx_complex_types_01.cc | 28 +++--- src/examples/eolian_cxx/eolian_cxx_eo_events_01.cc | 24 +-- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/examples/eolian_cxx/eolian_cxx_callbacks_01.cc b/src/examples/eolian_cxx/eolian_cxx_callbacks_01.cc index 4efff00..58377fe 100644 --- a/src/examples/eolian_cxx/eolian_cxx_callbacks_01.cc +++ b/src/examples/eolian_cxx/eolian_cxx_callbacks_01.cc @@ -20,14 +20,14 @@ #include namespace efl { namespace ecore { -using ::ecore_poller; +using ::ecore::poller; } } void example_callbacks() { int count = 0; - efl::ecore::ecore_poller poller + efl::ecore::poller poller (ECORE_POLLER_CORE, 1, [&count, &poller] { diff --git a/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc b/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc index cc2c760..d2eaac2 100644 --- a/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc +++ b/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc @@ -17,19 +17,19 @@ #include #include -#include +#include #include #include #include namespace efl { namespace evas { // XXX only while we don't have namespaces in EFL -using evas_base = ::evas; -using ::evas_object; -using ::evas_text; -using ::evas_grid; -using ::evas_rectangle; -using ::evas_common_interface; -using ::evas_zoomable_interface; +using ::evas::canvas; +using ::evas::object; +using ::evas::text; +using ::evas::grid; +using ::evas::rectangle; +using ::evas::common_interface; +using ::evas::zoomable_interface; } } namespace { @@ -64,21 +64,21 @@ void example_complex_types() { _ecore_evas_init(); - efl::evas::evas_base canvas(::eo_ref(::ecore_evas_get(ee))); + efl::evas::canvas canvas(::eo_ref(::ecore_evas_get(ee))); - ::evas_rectangle bg(efl::eo::parent = canvas); + efl::evas::rectangle bg(efl::eo::parent = canvas); bg.color_set(255, 255, 255, 255); bg.position_set(0, 0); bg.size_set(500, 250); bg.visibility_set(true); - efl::evas::evas_grid grid(efl::eo::parent = canvas); + efl::evas::grid grid(efl::eo::parent = canvas); grid.position_set(0, 0); grid.color_set(0, 0, 0, 255); grid.size_set(5, 5); grid.visibility_set(true); - efl::evas::evas_text text1(efl::eo::parent = canvas); + efl::evas::text text1(efl::eo::parent = canvas); text1.style_set(EVAS_TEXT_STYLE_OUTLINE); text1.color_set(255, 0, 0, 255); text1.font_set("DejaVu", 32); @@ -86,9 +86,9 @@ example_complex_types() text1.visibility_set(true); int t1w, t1h; text1.size_get(&t1w, &t1h); - grid.pack(text1, 1, 1, t1w, t1h); + grid.pack(text1._eo_ptr(), 1, 1, t1w, t1h); - efl::evas::evas_text text2(efl::eo::parent = canvas); + efl::evas::text text2(efl::eo::parent = canvas); text2.style_set(EVAS_TEXT_STYLE_PLAIN); text2.color_set(0, 120, 0, 255); text2.position_set(t1w+50, t1h+50); diff --git a/src/examples/eolian_cxx/eolian_cxx_eo_events_01.cc b/src/examples/eolian_cxx/eolian_cxx_eo_events_01.cc index e3563ce..abb23c2 100644 --- a/src/examples/eolian_cxx/eolian_cxx_eo_events_01.cc +++ b/src/examples/eolian_cxx/eolian_cxx_eo_events_01.cc @@ -17,20 +17,20 @@ #include #include -#include +#include #include #include #include namespace efl { namespace evas { -using evas_base = ::evas; -using ::evas_object; -using ::evas_text; -using ::evas_grid; -using ::evas_rectangle; -using ::evas_common_interface; -using ::evas_zoomable_interface; +using ::evas::canvas; +using ::evas::object; +using ::evas::text; +using ::evas::grid; +using ::evas::rectangle; +using ::evas::common_interface; +using ::evas::zoomable_interface; } } namespace { @@ -67,9 +67,9 @@ example_complex_types() _ecore_evas_init(); { - efl::evas::evas_base canvas(::eo_ref(::ecore_evas_get(ee))); + efl::evas::canvas canvas(::eo_ref(::ecore_evas_get(ee))); - ::evas_rectangle bg(efl::eo::parent = canvas); + efl::evas::rectangle bg(efl::eo::parent = canvas); bg.color_set(255, 255, 255, 255); bg.position_set(0, 0); bg.size_set(500, 250); @@ -77,9 +77,9 @@ example_complex_types() efl::eo::signal_connection conn = bg.event_mouse_down_callback_add - ([] (::evas_object obj, Eo_Event_Description const& desc, void* info) + ([] (efl::evas::object obj, Eo_Event_Description const& desc, void* info) { - std::cout << "evas_box::mouse_down" << std::endl; + std::cout << "evas::box::mouse_down" << std::endl; return EO_CALLBACK_CONTINUE;
[EGIT] [core/efl] master 27/36: eo-cxx: Removed the necessity of copying for interoperability of containers
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1848d39588391ccde6297ccf0a0651b9970a03fc commit 1848d39588391ccde6297ccf0a0651b9970a03fc Author: Felipe Magno de Almeida Date: Thu Jul 17 21:46:13 2014 -0300 eo-cxx: Removed the necessity of copying for interoperability of containers --- src/bindings/eo_cxx/eo_cxx_interop.hh | 71 +++ 1 file changed, 30 insertions(+), 41 deletions(-) diff --git a/src/bindings/eo_cxx/eo_cxx_interop.hh b/src/bindings/eo_cxx/eo_cxx_interop.hh index 8d17e89..a6b3b37 100644 --- a/src/bindings/eo_cxx/eo_cxx_interop.hh +++ b/src/bindings/eo_cxx/eo_cxx_interop.hh @@ -38,7 +38,7 @@ to_c(bool x) } template -T to_c(T const& v) +T to_c(T const& v, typename std::enable_if::value>::type* = 0) { return v; } @@ -121,53 +121,24 @@ struct traits }; template -inline efl::eina::range_ptr_list -to_cxx(const Eina_List* x, std::tuple, tag< efl::eina::range_ptr_list >) +inline efl::eina::range_list +to_cxx(const Eina_List* x, std::tuple, tag< efl::eina::range_list >) { - efl::eina::ptr_list list; - const Eina_List *l; - void *val; - EINA_LIST_FOREACH(x, l, val) - { -typedef typename traits::type type; -list.push_back(new T (to_cxx(static_cast(val), std::tuple() - , tag(; - } - return list; + return efl::eina::list {x}; } template -inline efl::eina::range_ptr_list -to_cxx(Eina_List* x, std::tuple, tag< efl::eina::range_ptr_list >) -{ - efl::eina::ptr_list list; - Eina_List *l; - void *val; - EINA_LIST_FOREACH(x, l, val) - { -typedef typename traits::type type; -list.push_back(new T (to_cxx(static_cast(val), std::tuple() - , tag(; - } - eina_list_free(x); - return list; +inline efl::eina::range_list +to_cxx(Eina_List* x, std::tuple, tag< efl::eina::range_list >) +{ + return efl::eina::range_list{x}; } template -inline efl::eina::ptr_list -to_cxx(Eina_List* x, std::tuple, tag< efl::eina::ptr_list >) -{ - efl::eina::ptr_list list; - Eina_List *l; - void *val; - EINA_LIST_FOREACH(x, l, val) - { -typedef typename traits::type type; -list.push_back(new T (to_cxx(static_cast(val), std::tuple() - , tag(; - } - eina_list_free(x); - return list; +inline efl::eina::list +to_cxx(Eina_List* x, std::tuple, tag< efl::eina::list >) +{ + return efl::eina::list {x}; } inline eina::stringshare @@ -190,6 +161,24 @@ to_cxx(Eina_Iterator* x, std::tuple, tag< efl::eina::i return efl::eina::iterator(x); } +template +T +to_cxx(Eo const* x, std::tuple, tag< T > + , typename std::enable_if::value>* = 0) +{ + // Workaround for erroneous constness + return T{ ::eo_ref(const_cast(x))}; +} + +template +T +to_cxx(Eo const* x, std::tuple, tag< T > + , typename std::enable_if::value>* = 0) +{ + // Workaround for erroneous constness + return T{const_cast(x)}; +} + template T to_cxx(U object, O o) { --
[EGIT] [core/efl] master 11/36: eolian-cxx: Added empty wrapper constructor
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=377bb449ba1dbdb89bb6f8accda8c8eeb514fdbe commit 377bb449ba1dbdb89bb6f8accda8c8eeb514fdbe Author: Felipe Magno de Almeida Date: Wed Jul 16 21:52:22 2014 -0300 eolian-cxx: Added empty wrapper constructor Added empty wrapper constructor to generation from std::nullptr_t and allowed efl::eo::base to be empty with proper copy-constructors and assignment operators. --- src/bindings/eo_cxx/eo_base.hh | 53 -- .../grammar/eo_class_constructors_generator.hh | 10 2 files changed, 60 insertions(+), 3 deletions(-) diff --git a/src/bindings/eo_cxx/eo_base.hh b/src/bindings/eo_cxx/eo_base.hh index 3953fb9..a99d614 100644 --- a/src/bindings/eo_cxx/eo_base.hh +++ b/src/bindings/eo_cxx/eo_base.hh @@ -38,14 +38,27 @@ struct base /// explicit base(Eo* eo) : _eo_raw(eo) { - assert(eo != 0); } /// @brief Class destructor. /// ~base() { - detail::unref(_eo_raw); + if(_eo_raw) +detail::unref(_eo_raw); + } + + base(base const& other) + { + if(other._eo_raw) + _eo_raw = detail::ref(other._eo_raw); + } + + base(base&& other) + { + if(_eo_raw) detail::unref(_eo_raw); + _eo_raw = other._eo_raw; + other._eo_raw = nullptr; } base(base const& other) @@ -57,10 +70,27 @@ struct base /// base& operator=(base const& other) { - _eo_raw = detail::ref(other._eo_ptr()); + if(_eo_raw) +{ + detail::unref(_eo_raw); + _eo_raw = nullptr; +} + if(other._eo_raw) +_eo_raw = detail::ref(other._eo_raw); return *this; } + base& operator=(base&& other) + { + if(_eo_raw) +{ + detail::unref(_eo_raw); + _eo_raw = nullptr; +} + std::swap(_eo_raw, other._eo_raw); + return *this; + } + /// @brief Return a pointer to the EO Object stored in this /// instance. /// @@ -68,6 +98,19 @@ struct base /// Eo* _eo_ptr() const { return _eo_raw; } + /// @brief Releases the reference from this wrapper object and + /// return the pointer to the EO Object stored in this + /// instance. + /// + /// @return A pointer to the opaque EO Object. + /// + Eo* _release() + { + Eo* tmp = _eo_raw; + _eo_raw = nullptr; + return tmp; + } + /// @brief Get the reference count of this object. /// /// @return The referencer count of this object. @@ -168,6 +211,10 @@ struct base return info; } + explicit operator bool() const + { + return _eo_raw; + } protected: Eo* _eo_raw; ///< The opaque EO Object. diff --git a/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh b/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh index adc4e63..259fead 100644 --- a/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh +++ b/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh @@ -94,6 +94,16 @@ operator<<(std::ostream& out, constructor_eo const& x) << "explicit " << x._cls.name << "(Eo* eo)" << endl << tab(2) << ": " << class_name(x._cls.parent) << "(eo)" << endl << tab(1) << "{}" << endl << endl; + + out << comment( + "@brief nullptr_t Constructor.\n\n" + "Constructs an empty (null) object.\n\n" + , 1 + ) + << tab(1) + << "explicit " << x._cls.name << "(std::nullptr_t)" << endl + << tab(2) << ": " << class_name(x._cls.parent) << "(nullptr)" << endl + << tab(1) << "{}" << endl << endl; return out; } --
[EGIT] [core/efl] master 28/36: eo-cxx: Added support for returning-void function objects
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7af91ee8faafab80553cde9136ea31400c2e3ad4 commit 7af91ee8faafab80553cde9136ea31400c2e3ad4 Author: Felipe Magno de Almeida Date: Thu Jul 17 21:46:50 2014 -0300 eo-cxx: Added support for returning-void function objects --- src/bindings/eo_cxx/eo_event.hh | 17 - 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/bindings/eo_cxx/eo_event.hh b/src/bindings/eo_cxx/eo_event.hh index 4d990ce..f3d2e51 100644 --- a/src/bindings/eo_cxx/eo_event.hh +++ b/src/bindings/eo_cxx/eo_event.hh @@ -115,12 +115,27 @@ signal_connection make_signal_connection(std::unique_ptr& data, Eo* eo, ::Eo_ namespace _detail { template +Eina_Bool really_call_event(T& wrapper, F& f, Eo_Event_Description const& desc, void *info +, std::true_type) +{ + f(wrapper, desc, info); + return true; +} +template +Eina_Bool really_call_event(T& wrapper, F& f, Eo_Event_Description const& desc, void *info +, std::false_type) +{ + return f(wrapper, desc, info); +} + +template Eina_Bool event_callback(void *data, Eo *obj, Eo_Event_Description const* desc, void *info) { T wrapper(::eo_ref(obj)); F *f = static_cast(data); - return (*f)(wrapper, *desc, info); + return _detail::really_call_event(wrapper, *f, *desc, info + , std::is_void()); } } --
[EGIT] [core/efl] master 35/36: eolian-cxx: Fixed inheritance feature with callbacks
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c1e8918b88dd2b069b62c8b2798df72a2c8c0a29 commit c1e8918b88dd2b069b62c8b2798df72a2c8c0a29 Author: Felipe Magno de Almeida Date: Fri Jul 18 17:57:04 2014 -0300 eolian-cxx: Fixed inheritance feature with callbacks The addition of callbacks was making the inheritance to fail. Fixed generation by using the C types, instead of the abstracted callback types for the wrapper functions. --- .../eolian_cxx/grammar/inheritance_base_generator.hh | 16 +++- src/lib/eolian_cxx/grammar/parameters_generator.hh | 20 +--- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh index 8fe6e09..c7aaa8d 100644 --- a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh +++ b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh @@ -188,7 +188,7 @@ operator<<(std::ostream& out, inheritance_base_operations_function const& x) out << tab(2) << "virtual " << reinterpret_type(func.ret) << " " << func.name << "(" - << parameters_declaration(func.params) << ")" << endl + << parameters_c_declaration(func.params) << ")" << endl << tab(2) << "{" << endl; if (!is_void) { @@ -196,9 +196,12 @@ operator<<(std::ostream& out, inheritance_base_operations_function const& x) } out << tab(3) << "eo_do_super(static_cast(this)->_eo_ptr()" << endl - << tab(4) << ", static_cast(this)->_eo_class()" << endl - << tab(4) << ", " << function_call(func) - << ");" << endl; + << tab(4) << ", static_cast(this)->_eo_class()," << endl + << tab(4) << (!is_void ? "_tmp_ret = " : "") + << "::" << x._func.impl + << "("; + parameter_names_enumerate(out, func.params) + << "));" << endl; if (!is_void) { out << tab(3) << "return _tmp_ret;" << endl; @@ -399,17 +402,12 @@ operator<<(std::ostream& out, inheritance_eo_class_getter const& x) inline void eo_inheritance_detail_generator(std::ostream& out, eo_class const& cls) { -#if 0 // Will be fixed ASAP out << inheritance_wrappers(cls) -#endif - out << "namespace efl { namespace eo { namespace detail {" << endl << endl -#if 0 // Will be fixed ASAP << inheritance_base_operations(cls) << endl << inheritance_base_operations_size(cls) << inheritance_operations_description(cls) << inheritance_call_constructors(cls) -#endif << inheritance_extension(cls) << inheritance_eo_class_getter(cls) << "} } }" << endl; diff --git a/src/lib/eolian_cxx/grammar/parameters_generator.hh b/src/lib/eolian_cxx/grammar/parameters_generator.hh index a94eda6..053cef6 100644 --- a/src/lib/eolian_cxx/grammar/parameters_generator.hh +++ b/src/lib/eolian_cxx/grammar/parameters_generator.hh @@ -86,6 +86,21 @@ operator<<(std::ostream& out, parameters_types const& x) return out; } +inline +std::ostream& parameter_names_enumerate(std::ostream& out +, parameters_container_type const& params) +{ + for (auto first = params.begin() + , iterator = first + , last = params.end() + ; iterator != last; ++iterator) + { +if(iterator != first) out << ", "; +out << iterator->name; + } + return out; +} + struct parameters_list { @@ -160,10 +175,9 @@ operator<<(std::ostream& out, parameters_cxx_list const& x) { if (it != first) out << ", "; -if (type_is_callback((*it).type)) +if (type_is_callback((*it).type) && it + 1 != last) { - out << "std::move(" << (*it).name << ")"; - assert(it+1 != last); + out << "std::forward(" << (*it).name << ")"; ++it; // skip next. } else --
[EGIT] [core/efl] master 01/36: examples: Removed compilation warnings.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7e1f131286dc61a51268dbaaec70a74ee66ea19c commit 7e1f131286dc61a51268dbaaec70a74ee66ea19c Author: Savio Sena Date: Fri Jul 11 20:17:04 2014 -0300 examples: Removed compilation warnings. --- src/examples/ecore/ecore_compose_get_example.c | 6 +- src/examples/ecore/ecore_evas_buffer_example_02.c | 2 +- .../ecore/ecore_evas_window_sizes_example.c| 6 +- src/examples/ecore/ecore_imf_example.c | 2 + src/examples/ecore/ecore_job_example.c | 5 + src/examples/edje/edje-multisense.c| 2 +- src/examples/eet/eet-data-file_descriptor_01.c | 20 ++-- src/examples/eina/eina_hash_02.c | 2 +- src/examples/eina/eina_hash_03.c | 2 +- src/examples/eina/eina_hash_04.c | 2 +- src/examples/eina/eina_hash_05.c | 2 +- src/examples/eina/eina_hash_06.c | 2 +- src/examples/evas/evas-box.c | 8 +- src/examples/evas/evas-gl.c| 114 ++--- 14 files changed, 91 insertions(+), 84 deletions(-) diff --git a/src/examples/ecore/ecore_compose_get_example.c b/src/examples/ecore/ecore_compose_get_example.c index 846b43b..f9b45cf 100644 --- a/src/examples/ecore/ecore_compose_get_example.c +++ b/src/examples/ecore/ecore_compose_get_example.c @@ -45,7 +45,7 @@ _is_modifier(const char *key) /*** end 1 : Ecore compose stuff ***/ static void -_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event) +_key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event) { Evas_Event_Key_Down *ev = (Evas_Event_Key_Down *)event; int alt; @@ -57,7 +57,7 @@ _key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void ctrl = evas_key_modifier_is_set(ev->modifiers, "Control"); printf("down : keyname: %s key: %s compose: **%s** string: **%s** [%zu] %d (%d:%d:%d)\n", - ev->keyname, ev->key, ev->string, ev->compose, (ev->compose) ? strlen(ev->compose) : -1, (ev->compose) ? *(ev->compose) : -1, + ev->keyname, ev->key, ev->string, ev->compose, (ev->compose) ? strlen(ev->compose) : (size_t)-1, (ev->compose) ? *(ev->compose) : -1, alt, shift, ctrl); } @@ -138,7 +138,7 @@ _key_up_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * } static void -_del(Ecore_Evas *ee) +_del(Ecore_Evas *ee EINA_UNUSED) { ecore_main_loop_quit(); } diff --git a/src/examples/ecore/ecore_evas_buffer_example_02.c b/src/examples/ecore/ecore_evas_buffer_example_02.c index 15180b6..e1e59c4 100644 --- a/src/examples/ecore/ecore_evas_buffer_example_02.c +++ b/src/examples/ecore/ecore_evas_buffer_example_02.c @@ -31,7 +31,7 @@ static Ecore_Evas *ee; static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png"; static void -_on_destroy(Ecore_Evas *ee EINA_UNUSED) +_on_destroy(Ecore_Evas *ee_ EINA_UNUSED) { ecore_main_loop_quit(); } diff --git a/src/examples/ecore/ecore_evas_window_sizes_example.c b/src/examples/ecore/ecore_evas_window_sizes_example.c index d7f66ae..9c71cb5 100644 --- a/src/examples/ecore/ecore_evas_window_sizes_example.c +++ b/src/examples/ecore/ecore_evas_window_sizes_example.c @@ -41,12 +41,12 @@ static const char commands[] = \ /* to inform current window's size */ static void -_canvas_resize_cb(Ecore_Evas *ee) +_canvas_resize_cb(Ecore_Evas *ee_) { int w, h; char buf[1024]; - ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + ecore_evas_geometry_get(ee_, NULL, NULL, &w, &h); snprintf(buf, sizeof(buf), "%d x %d", w, h); evas_object_text_text_set(text, buf); evas_object_move(text, (w - 150) / 2, (h - 50) / 2); @@ -55,7 +55,7 @@ _canvas_resize_cb(Ecore_Evas *ee) } static void -_on_destroy(Ecore_Evas *ee EINA_UNUSED) +_on_destroy(Ecore_Evas *ee_ EINA_UNUSED) { ecore_main_loop_quit(); } diff --git a/src/examples/ecore/ecore_imf_example.c b/src/examples/ecore/ecore_imf_example.c index 6075037..ca8569c 100644 --- a/src/examples/ecore/ecore_imf_example.c +++ b/src/examples/ecore/ecore_imf_example.c @@ -365,6 +365,8 @@ _key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *o EINA_UNUSED, void * control = evas_key_modifier_is_set(ev->modifiers, "Control"); alt = evas_key_modifier_is_set(ev->modifiers, "Alt"); shift = evas_key_modifier_is_set(ev->modifiers, "Shift"); + (void)alt; + (void)shift; if (!strcmp(ev->key, "BackSpace")) { diff --git a/src/examples/ecore/ecore_job_example.c b/src/examples/ecore/ecore_job_example.c index 541cadb..221f012 100644 --- a/src/examples/ecore/ecore_job_example.c +++ b/src/examples/ecore/ecore_job_example.c @@ -37,6 +37,11 @@ main(void) job3 = ecore_job_add(_job_print_cb, str3); job_quit = ecore_job_add(_job_quit_cb,
[EGIT] [core/efl] master 32/36: eolian-cxx: Workaround for callbacks without void* data parameter
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=15d85d7dc65cdf868be198938d0b9f66d8809d32 commit 15d85d7dc65cdf868be198938d0b9f66d8809d32 Author: Felipe Magno de Almeida Date: Thu Jul 17 21:48:56 2014 -0300 eolian-cxx: Workaround for callbacks without void* data parameter --- src/lib/eolian_cxx/eo_types.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/eolian_cxx/eo_types.hh b/src/lib/eolian_cxx/eo_types.hh index 31a32da..58d9fb4 100644 --- a/src/lib/eolian_cxx/eo_types.hh +++ b/src/lib/eolian_cxx/eo_types.hh @@ -247,7 +247,7 @@ parameters_find_callback(parameters_container_type const& parameters) for (auto it = parameters.cbegin(), last = parameters.cend(); it != last; ++it) { -if (type_is_callback((*it).type)) +if (type_is_callback((*it).type) && it + 1 != last) return it; } return parameters.cend(); --
[EGIT] [core/efl] master 12/36: eolian-cxx: Fixed using eo::base for extension_inheritance
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=637a97a0f5e2552659a7ab7c21959387e786b453 commit 637a97a0f5e2552659a7ab7c21959387e786b453 Author: Felipe Magno de Almeida Date: Wed Jul 16 20:17:10 2014 -0300 eolian-cxx: Fixed using eo::base for extension_inheritance Extended the logic for rewriting the eo::base to efl::eo::base for parents to extension inheritance. --- src/bin/eolian_cxx/convert.cc | 29 + 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/bin/eolian_cxx/convert.cc b/src/bin/eolian_cxx/convert.cc index f52affa..7131188 100644 --- a/src/bin/eolian_cxx/convert.cc +++ b/src/bin/eolian_cxx/convert.cc @@ -155,6 +155,14 @@ convert_eolian_property_to_functions(Eolian_Class const& klass) return container; } +std::string get_class_name(std::string const& name) +{ + // "eo_base" is the Eolian name for EO_BASE_CLASS. + return (name == "eo_base" || name == "eo::base" || name == "") +? "efl::eo::base" +: name; +} + void convert_eolian_inheritances(efl::eolian::eo_class& cls, Eolian_Class const& klass) { @@ -171,21 +179,18 @@ convert_eolian_inheritances(efl::eolian::eo_class& cls, Eolian_Class const& klas } else { +// First element is the parent const char *ptr = static_cast (eina_list_data_get(inheritances)); -std::string parent = class_format_cxx(safe_lower(ptr)); +cls.parent = get_class_name(class_format_cxx(safe_lower(ptr))); -// "eo_base" is the Eolian name for EO_BASE_CLASS. -cls.parent = - (parent == "eo_base" || parent == "eo::base" || parent == "") - ? "efl::eo::base" - : parent; - } - inheritances = eina_list_next(inheritances); - EINA_LIST_FOREACH (inheritances, it, curr) - { -std::string extension = safe_lower(static_cast(curr)); -cls.extensions.push_back(class_format_cxx(extension)); +inheritances = eina_list_next(inheritances); + +EINA_LIST_FOREACH (inheritances, it, curr) + { + std::string extension = safe_lower(static_cast(curr)); + cls.extensions.push_back(get_class_name(class_format_cxx(extension))); + } } } --
[EGIT] [core/efl] master 08/36: eolian-cxx: Fixed the translation of the native type.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=67e187bebc1c2d6395e389f7d63a7605bff992a3 commit 67e187bebc1c2d6395e389f7d63a7605bff992a3 Author: Savio Sena Date: Thu Jul 17 01:25:45 2014 -0300 eolian-cxx: Fixed the translation of the native type. --- src/bin/eolian_cxx/type_lookup.hh | 6 +++--- src/lib/eolian_cxx/eo_types.hh| 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/bin/eolian_cxx/type_lookup.hh b/src/bin/eolian_cxx/type_lookup.hh index b5c7cfa..8465ef9 100644 --- a/src/bin/eolian_cxx/type_lookup.hh +++ b/src/bin/eolian_cxx/type_lookup.hh @@ -28,8 +28,8 @@ inline efl::eolian::eolian_type type_from_eolian(Eolian_Type const& type) { efl::eolian::eolian_type x; - x.native = normalize_spaces(safe_str(type.name)); - x.is_own = type.is_own; + x.native = normalize_spaces(safe_str(::eolian_type_c_type_get(&type))); + x.is_own = ::eolian_type_is_own(&type); return x; } @@ -50,7 +50,7 @@ inline efl::eolian::eolian_type_instance type_lookup(const Eolian_Type* type, lookup_table_type const& lut = type_lookup_table) { - if (type == NULL) return { efl::eolian::void_type }; + if (type == NULL) return { efl::eolian::void_type }; // XXX shouldn't size_t n = ::eina_list_count(type->subtypes) + 1; assert(n > 0); efl::eolian::eolian_type_instance v(n); diff --git a/src/lib/eolian_cxx/eo_types.hh b/src/lib/eolian_cxx/eo_types.hh index bd6e7d9..f9b8946 100644 --- a/src/lib/eolian_cxx/eo_types.hh +++ b/src/lib/eolian_cxx/eo_types.hh @@ -248,7 +248,7 @@ parameters_find_callback(parameters_container_type const& parameters) { if (type_is_callback((*it).type)) return it; -} + } return parameters.cend(); } --
[EGIT] [core/efl] master 18/36: eolian-cxx: Fixed complex-types.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e807421f602c1adab47c3fcadbc508155d0d1136 commit e807421f602c1adab47c3fcadbc508155d0d1136 Author: Savio Sena Date: Thu Jul 17 04:14:22 2014 -0300 eolian-cxx: Fixed complex-types. --- src/bin/eolian_cxx/type_lookup.hh| 33 +++- src/bin/eolian_cxx/type_lookup_table.cc | 2 +- src/lib/eolian_cxx/grammar/type_generator.hh | 2 +- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/src/bin/eolian_cxx/type_lookup.hh b/src/bin/eolian_cxx/type_lookup.hh index 8465ef9..b26fff9 100644 --- a/src/bin/eolian_cxx/type_lookup.hh +++ b/src/bin/eolian_cxx/type_lookup.hh @@ -51,13 +51,36 @@ type_lookup(const Eolian_Type* type, lookup_table_type const& lut = type_lookup_table) { if (type == NULL) return { efl::eolian::void_type }; // XXX shouldn't - size_t n = ::eina_list_count(type->subtypes) + 1; - assert(n > 0); - efl::eolian::eolian_type_instance v(n); - for (size_t i=0; i(::eina_iterator_container_get(it)); +n_ = ::eina_list_count(lt) + 1; +::eina_iterator_free(it); + } + else + { +n_ = 1; + } + // assert(n_ > 0); + efl::eolian::eolian_type_instance v(n_); + for (size_t i=0; i", {"memory"}}, {"const Eina_Inlist *", eolian_type::complex_, false, "efl::eina::range_inlist", {"eina-cxx/eina_inlist.hh"}}, {"const Eina_List *", eolian_type::complex_, false, "efl::eina::range_ptr_list", {"eina-cxx/eina_ptrlist.hh"}}, diff --git a/src/lib/eolian_cxx/grammar/type_generator.hh b/src/lib/eolian_cxx/grammar/type_generator.hh index 1ca5a66..acc7aa9 100644 --- a/src/lib/eolian_cxx/grammar/type_generator.hh +++ b/src/lib/eolian_cxx/grammar/type_generator.hh @@ -76,7 +76,7 @@ operator<<(std::ostream& out, to_cxx const& x) << ", " << type_ownership(x._type) << ");"; } else - out << "_ret"; + out << "_tmp_ret"; return out; } --
[EGIT] [core/efl] master 29/36: Changed uses of std::abort to assert's with better description
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2ff390e087587f755ec09a2ccf2bcd673e6272a5 commit 2ff390e087587f755ec09a2ccf2bcd673e6272a5 Author: Felipe Magno de Almeida Date: Thu Jul 17 21:47:23 2014 -0300 Changed uses of std::abort to assert's with better description --- src/bin/eolian_cxx/eolian_cxx.cc | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/bin/eolian_cxx/eolian_cxx.cc b/src/bin/eolian_cxx/eolian_cxx.cc index 93064bc..d68548c 100644 --- a/src/bin/eolian_cxx/eolian_cxx.cc +++ b/src/bin/eolian_cxx/eolian_cxx.cc @@ -183,7 +183,7 @@ run(options_type const& opts) EINA_CXX_DOM_LOG_ERR(eolian_cxx::domain) << "Error generating: " << class_name(*klass) << std::endl; - std::abort(); + assert(false && "error generating class"); } static void @@ -201,7 +201,7 @@ database_load(options_type const& opts) { EINA_CXX_DOM_LOG_ERR(eolian_cxx::domain) << "Eolian failed parsing eot files"; -std::abort(); +assert(false && "Error parsing eot files"); } if (!opts.in_file.empty()) { @@ -209,14 +209,14 @@ database_load(options_type const& opts) { EINA_CXX_DOM_LOG_ERR(eolian_cxx::domain) << "Failed parsing: " << opts.in_file << "."; - std::abort(); + assert(false && "Error parsing input file"); } } if (!::eolian_all_eo_files_parse()) { EINA_CXX_DOM_LOG_ERR(eolian_cxx::domain) << "Eolian failed parsing input files"; -std::abort(); +assert(false && "Error parsing input files"); } } @@ -327,7 +327,7 @@ opts_get(int argc, char **argv) if (!eolian_cxx::opts_check(opts)) { _usage(argv[0]); -std::abort(); +assert(false && "Wrong options passed in command-line"); } return opts; --
[EGIT] [core/efl] master 15/36: eolian-cxx: Fixed the translation of classnames
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5d61edabd8385f010b45192d83c784b07da86dbc commit 5d61edabd8385f010b45192d83c784b07da86dbc Author: Savio Sena Date: Thu Jul 17 04:05:30 2014 -0300 eolian-cxx: Fixed the translation of classnames --- src/bin/eolian_cxx/eolian_wrappers.hh | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/bin/eolian_cxx/eolian_wrappers.hh b/src/bin/eolian_cxx/eolian_wrappers.hh index 7954428..1b26a35 100644 --- a/src/bin/eolian_cxx/eolian_wrappers.hh +++ b/src/bin/eolian_cxx/eolian_wrappers.hh @@ -316,15 +316,14 @@ event_create(Eolian_Class const& klass, const Eolian_Event *event_) { efl::eolian::eo_event event; const char *name, *comment; - const Eolian_Type *type; - static_cast(type); // XXX - if(::eolian_class_event_information_get(event_, &name, &type, &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(), [](int c) { return c != ',' ? c : '_'; }); event.name = normalize_spaces(name_); -event.eo_name = safe_upper(class_name(klass) + "_EVENT_" + event.name); +event.eo_name = safe_upper + (find_replace(class_full_name(klass), ".", "_") + "_EVENT_" + event.name); event.comment = safe_str(comment); } return event; --
[EGIT] [core/efl] master 16/36: eolian-cxx: Relevant cosmetics.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=04d90ae131bd037ccd59eff15531f2459c799897 commit 04d90ae131bd037ccd59eff15531f2459c799897 Author: Savio Sena Date: Thu Jul 17 04:06:07 2014 -0300 eolian-cxx: Relevant cosmetics. --- src/lib/eolian_cxx/eo_types.hh| 2 +- src/lib/eolian_cxx/eo_validate.hh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/eolian_cxx/eo_types.hh b/src/lib/eolian_cxx/eo_types.hh index f9b8946..08bbd73 100644 --- a/src/lib/eolian_cxx/eo_types.hh +++ b/src/lib/eolian_cxx/eo_types.hh @@ -114,7 +114,7 @@ type_is_binding(eolian_type_instance const& type) inline eolian_type type_to_native(eolian_type const& type) { - eolian_type native = type; + eolian_type native(type); native.binding.clear(); native.category = eolian_type::simple_; return native; diff --git a/src/lib/eolian_cxx/eo_validate.hh b/src/lib/eolian_cxx/eo_validate.hh index 4f131a0..53bfec5 100644 --- a/src/lib/eolian_cxx/eo_validate.hh +++ b/src/lib/eolian_cxx/eo_validate.hh @@ -51,7 +51,7 @@ _is_valid(events_container_type const& events) template inline void -_validate(T val, const eo_class& cls) +_validate(T const& val, eo_class const& cls) { if(!_is_valid(val)) { --
[EGIT] [core/efl] master 25/36: eo-cxx: Added default-constructor to wref type
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=df1c03b56be63e90a12a232bc2a7d06d5d142215 commit df1c03b56be63e90a12a232bc2a7d06d5d142215 Author: Felipe Magno de Almeida Date: Thu Jul 17 15:29:31 2014 -0300 eo-cxx: Added default-constructor to wref type --- src/bindings/eo_cxx/eo_wref.hh | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/bindings/eo_cxx/eo_wref.hh b/src/bindings/eo_cxx/eo_wref.hh index 4e2385f..ec3b619 100644 --- a/src/bindings/eo_cxx/eo_wref.hh +++ b/src/bindings/eo_cxx/eo_wref.hh @@ -18,8 +18,16 @@ namespace efl { namespace eo { /// @brief Weak references to an EO Object. /// template -struct wref { - +struct wref +{ + /// @brief Default constructor. + /// + /// Create a empty weak reference. + /// + wref() : _eo_wref(nullptr) + { + } + /// @brief Class constructor. /// /// @param obj The EO Object to be referenced. @@ -46,8 +54,9 @@ struct wref { /// ~wref() { - if(eina::optional p = lock()) -_del(); + if(_eo_wref) +if(eina::optional p = lock()) + _del(); } /// @brief Try to acquire a strong reference to the underlying --
[EGIT] [core/efl] master 23/36: eolian-cxx: Workaround for multiple callbacks without corresponding void*data
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=401cc81355be66c147848815d243ec167c1f7532 commit 401cc81355be66c147848815d243ec167c1f7532 Author: Felipe Magno de Almeida Date: Thu Jul 17 14:09:26 2014 -0300 eolian-cxx: Workaround for multiple callbacks without corresponding void*data Added workaround for generating classes with methods that have more than one callback but doesn't have a corresponding void* data parameter. E.g., elm_box.eo. --- src/lib/eolian_cxx/eo_types.hh | 5 +++-- .../grammar/inheritance_base_generator.hh | 2 +- src/lib/eolian_cxx/grammar/parameters_generator.hh | 21 ++--- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/lib/eolian_cxx/eo_types.hh b/src/lib/eolian_cxx/eo_types.hh index 08bbd73..31a32da 100644 --- a/src/lib/eolian_cxx/eo_types.hh +++ b/src/lib/eolian_cxx/eo_types.hh @@ -234,8 +234,9 @@ inline unsigned int parameters_count_callbacks(parameters_container_type const& parameters) { unsigned int r = 0u; - for (eo_parameter const& param : parameters) - if(type_is_callback(param.type)) + for (auto first = parameters.begin(), last = parameters.end() + ; first != last ; ++first) + if(type_is_callback(first->type) && first + 1 != last) ++r; return r; } diff --git a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh index 8f426a5..1b902fc 100644 --- a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh +++ b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh @@ -250,7 +250,7 @@ operator<<(std::ostream& out, inheritance_call_constructor_arguments const& x) for (i=0; i()"; +out << "::efl::eolian::to_c(args.get<" << i << ">())"; } return out; } diff --git a/src/lib/eolian_cxx/grammar/parameters_generator.hh b/src/lib/eolian_cxx/grammar/parameters_generator.hh index 9f6f3e5..648a995 100644 --- a/src/lib/eolian_cxx/grammar/parameters_generator.hh +++ b/src/lib/eolian_cxx/grammar/parameters_generator.hh @@ -28,11 +28,11 @@ operator<<(std::ostream& out, parameters_declaration const& x) { if (it != first) out << ", "; -if (type_is_callback((*it).type)) +if (type_is_callback((*it).type) && it+1 != last) { - out << "F && " << (*it).name; - assert(it+1 != last); - ++it; // skip next. +out << "F && " << (*it).name; +assert(it+1 != last); +++it; // skip next. } else out << reinterpret_type((*it).type) << " " << (*it).name; @@ -80,12 +80,19 @@ operator<<(std::ostream& out, parameters_list const& x) { if (it != first) out << ", "; -out << to_c((*it).type, (*it).name); if (type_is_callback((*it).type)) { - out << ", _tmp_f"; - ++it; // skip next +if(it + 1 != last) + { +out << to_c((*it).type, (*it).name) +<< ", _tmp_f"; +++it; // skip next + } +else + out << it->name; } +else + out << to_c((*it).type, (*it).name); } return out; } --
[EGIT] [apps/epour] master 01/02: Check that torrent has metadata before attempting to display tooltip
kuuko pushed a commit to branch master. http://git.enlightenment.org/apps/epour.git/commit/?id=7fb1efddbaac8994044482e5b7e681a5ba376c6b commit 7fb1efddbaac8994044482e5b7e681a5ba376c6b Author: Kai Huuhko Date: Fri Jul 18 22:11:14 2014 +0300 Check that torrent has metadata before attempting to display tooltip --- epour/gui/__init__.py | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/epour/gui/__init__.py b/epour/gui/__init__.py index 9d4cce1..19aadd1 100644 --- a/epour/gui/__init__.py +++ b/epour/gui/__init__.py @@ -255,7 +255,12 @@ class MainInterface(object): if not h.is_valid(): return -tt = TorrentTooltip(tooltip, h) +s = h.status(8) + +if not s.has_metadata: +return + +tt = TorrentTooltip(tooltip, h, s) return tt @@ -584,12 +589,10 @@ class TorrentTooltip(Table): ("Number of peers", None, "num_peers"), ) -def __init__(self, parent, h): +def __init__(self, parent, h, s): Table.__init__(self, parent, size_hint_weight=EXPAND_BOTH) -s = h.status(8) - value_labels = [] for i, (desc, conv, attr_name) in enumerate(self.items): --
[EGIT] [apps/epour] master 02/02: Fix save and restore of torrents without metadata
kuuko pushed a commit to branch master. http://git.enlightenment.org/apps/epour.git/commit/?id=5541a2ad759a4ef5bae9e7b7797f6e3c356d2dde commit 5541a2ad759a4ef5bae9e7b7797f6e3c356d2dde Author: Kai Huuhko Date: Fri Jul 18 22:13:36 2014 +0300 Fix save and restore of torrents without metadata --- epour/session.py | 27 +-- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/epour/session.py b/epour/session.py index f3234d2..d869736 100644 --- a/epour/session.py +++ b/epour/session.py @@ -180,12 +180,14 @@ class Session(lt.session): try: if isinstance(t, dict): for k, v in t.items(): -if k == "ti": +if v is None: +continue +elif k == "ti": t[k] = lt.torrent_info(lt.bdecode(v)) # with open(v, "rb") as f: # torrents[i][k] = \ # lt.torrent_info(lt.bdecode(f.read())) -if k == "info_hash": +elif k == "info_hash": torrents[i][k] = lt.big_number(v) else: # Upgrade from older versions where t is file path @@ -219,17 +221,22 @@ class Session(lt.session): else: self.torrents[i][k] = v.to_string() -for h in self.get_torrents(): -if h.is_valid() and h.has_metadata(): +handles = self.get_torrents() +for h in handles: +if h.is_valid(): i = str(h.info_hash()) t_dict = self.torrents[i] -t_info = h.get_torrent_info() -t = {} -t["info"] = lt.bdecode(t_info.metadata()) -t_dict["ti"] = lt.bencode(t) t_dict["save_path"] = h.save_path() -resume_data = lt.bencode(h.write_resume_data()) -t_dict["resume_data"] = resume_data +s = h.status(0) +if s.has_metadata: +resume_data = lt.bencode(h.write_resume_data()) +t_dict["resume_data"] = resume_data +t_info = h.get_torrent_info() +t = {} +t["info"] = lt.bdecode(t_info.metadata()) +t_dict["ti"] = lt.bencode(t) +else: +self.log.debug("Handle is invalid, skipping") path = os.path.join(save_data_path("epour"), "torrents") with open(path, 'wb') as f: --
[EGIT] [tools/enventor] master 01/01: change the desktop category to Development/Utility
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=4b45c690f3eef5855f3daa9df714fd5a08862ce9 commit 4b45c690f3eef5855f3daa9df714fd5a08862ce9 Author: ChunEon Park Date: Sat Jul 19 01:35:13 2014 +0900 change the desktop category to Development/Utility --- data/desktop/enventor.desktop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/desktop/enventor.desktop b/data/desktop/enventor.desktop index 867d0af..c1baf48 100644 --- a/data/desktop/enventor.desktop +++ b/data/desktop/enventor.desktop @@ -7,4 +7,4 @@ Icon=enventor Exec=enventor Terminal=false #MimeType=text/edc -Categories=Utility;EdcEditor; +Categories=Development;Utility; --
[EGIT] [core/elementary] master 01/01: update according to latest eolian changes
q66 pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=1e0a451cea728528a32d0118b0f739873a94be26 commit 1e0a451cea728528a32d0118b0f739873a94be26 Author: Daniel Kolesa Date: Fri Jul 18 17:30:06 2014 +0100 update according to latest eolian changes --- src/lib/elm_interface_atspi_editable_text.eo | 1 - src/lib/elm_interface_atspi_selection.eo | 1 - src/lib/elm_interface_atspi_text.eo | 1 - src/lib/elm_interface_atspi_value.eo | 1 - src/lib/elm_interface_atspi_window.eo| 1 - src/lib/elm_interface_fileselector.eo| 1 - 6 files changed, 6 deletions(-) diff --git a/src/lib/elm_interface_atspi_editable_text.eo b/src/lib/elm_interface_atspi_editable_text.eo index e2628f5..2f431e2 100644 --- a/src/lib/elm_interface_atspi_editable_text.eo +++ b/src/lib/elm_interface_atspi_editable_text.eo @@ -2,7 +2,6 @@ interface Elm_Interface_Atspi_Editable_Text () { legacy_prefix: null; eo_prefix: elm_interface_atspi_editable_text; - data: null; properties { protected content { set { diff --git a/src/lib/elm_interface_atspi_selection.eo b/src/lib/elm_interface_atspi_selection.eo index 79785a5..0269cac 100644 --- a/src/lib/elm_interface_atspi_selection.eo +++ b/src/lib/elm_interface_atspi_selection.eo @@ -2,7 +2,6 @@ interface Elm_Interface_Atspi_Selection () { legacy_prefix: null; eo_prefix: elm_interface_atspi_selection; - data: null; properties { protected selected_children_count { get { diff --git a/src/lib/elm_interface_atspi_text.eo b/src/lib/elm_interface_atspi_text.eo index af8d869..44e79db 100644 --- a/src/lib/elm_interface_atspi_text.eo +++ b/src/lib/elm_interface_atspi_text.eo @@ -2,7 +2,6 @@ interface Elm_Interface_Atspi_Text () { legacy_prefix: null; eo_prefix: elm_interface_atspi_text; - data: null; properties { protected character { get { diff --git a/src/lib/elm_interface_atspi_value.eo b/src/lib/elm_interface_atspi_value.eo index 96ae355..ded5a7b 100644 --- a/src/lib/elm_interface_atspi_value.eo +++ b/src/lib/elm_interface_atspi_value.eo @@ -2,7 +2,6 @@ interface Elm_Interface_Atspi_Value () { legacy_prefix: null; eo_prefix: elm_interface_atspi_value; - data: null; properties { protected value_and_text { get { diff --git a/src/lib/elm_interface_atspi_window.eo b/src/lib/elm_interface_atspi_window.eo index d21fb69..4d57361 100644 --- a/src/lib/elm_interface_atspi_window.eo +++ b/src/lib/elm_interface_atspi_window.eo @@ -1,6 +1,5 @@ interface Elm_Interface_Atspi_Window () { - data: null; events { window,created; /*@ Called when new window has been created. */ window,activated; /*@ Called when new window has been activated. (unfocused) */ diff --git a/src/lib/elm_interface_fileselector.eo b/src/lib/elm_interface_fileselector.eo index 8fbae0f..751353c 100644 --- a/src/lib/elm_interface_fileselector.eo +++ b/src/lib/elm_interface_fileselector.eo @@ -2,7 +2,6 @@ interface Elm_Interface_Fileselector () { legacy_prefix: null; eo_prefix: elm_interface_fileselector; - data: null; properties { folder_only { set { --
[EGIT] [core/efl] master 01/01: eolian: disallow the data field in interfaces; it's always null
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=fa3e433f6ea86988f2324119f1869eeacaa7dca5 commit fa3e433f6ea86988f2324119f1869eeacaa7dca5 Author: Daniel Kolesa Date: Fri Jul 18 17:29:25 2014 +0100 eolian: disallow the data field in interfaces; it's always null --- src/lib/eolian/eo_parser.c | 5 + src/lib/evas/canvas/evas_clickable_interface.eo | 1 - src/lib/evas/canvas/evas_common_interface.eo | 1 - src/lib/evas/canvas/evas_draggable_interface.eo | 1 - src/lib/evas/canvas/evas_scrollable_interface.eo | 1 - src/lib/evas/canvas/evas_selectable_interface.eo | 1 - src/lib/evas/canvas/evas_signal_interface.eo | 1 - src/lib/evas/canvas/evas_zoomable_interface.eo | 1 - 8 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 9ddcf25..d5bdc0c 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -939,6 +939,10 @@ parse_class_body(Eo_Lexer *ls, Eina_Bool allow_ctors, Eolian_Class_Type type) ls->tmp.kls->comment = eina_stringshare_ref(ls->t.value); eo_lexer_get(ls); } + if (type == EOLIAN_CLASS_INTERFACE) + { +ls->tmp.kls->data_type = eina_stringshare_add("null"); + } for (;;) switch (ls->t.kw) { case KW_legacy_prefix: @@ -960,6 +964,7 @@ parse_class_body(Eo_Lexer *ls, Eina_Bool allow_ctors, Eolian_Class_Type type) check_next(ls, ';'); break; case KW_data: +if (type == EOLIAN_CLASS_INTERFACE) return; CASE_LOCK(ls, data, "data definition") eo_lexer_get(ls); check_next(ls, ':'); diff --git a/src/lib/evas/canvas/evas_clickable_interface.eo b/src/lib/evas/canvas/evas_clickable_interface.eo index d3de7ee..47337b6 100644 --- a/src/lib/evas/canvas/evas_clickable_interface.eo +++ b/src/lib/evas/canvas/evas_clickable_interface.eo @@ -1,6 +1,5 @@ interface Evas.Clickable_Interface (Evas.Signal_Interface) { - data: null; events { clicked; clicked,double; diff --git a/src/lib/evas/canvas/evas_common_interface.eo b/src/lib/evas/canvas/evas_common_interface.eo index 392f8ec..390ef4c 100644 --- a/src/lib/evas/canvas/evas_common_interface.eo +++ b/src/lib/evas/canvas/evas_common_interface.eo @@ -1,7 +1,6 @@ interface Evas.Common_Interface () { eo_prefix: evas_common; - data: null; properties { evas { get { diff --git a/src/lib/evas/canvas/evas_draggable_interface.eo b/src/lib/evas/canvas/evas_draggable_interface.eo index 628f32f..5f1a8d0 100644 --- a/src/lib/evas/canvas/evas_draggable_interface.eo +++ b/src/lib/evas/canvas/evas_draggable_interface.eo @@ -1,6 +1,5 @@ interface Evas.Draggable_Interface (Evas.Signal_Interface) { - data: null; events { drag; drag,start; diff --git a/src/lib/evas/canvas/evas_scrollable_interface.eo b/src/lib/evas/canvas/evas_scrollable_interface.eo index 370435c..8fd36d3 100644 --- a/src/lib/evas/canvas/evas_scrollable_interface.eo +++ b/src/lib/evas/canvas/evas_scrollable_interface.eo @@ -1,6 +1,5 @@ interface Evas.Scrollable_Interface (Evas.Signal_Interface) { - data: null; events { scroll; scroll,anim,start; diff --git a/src/lib/evas/canvas/evas_selectable_interface.eo b/src/lib/evas/canvas/evas_selectable_interface.eo index 4ee2685..44952ab 100644 --- a/src/lib/evas/canvas/evas_selectable_interface.eo +++ b/src/lib/evas/canvas/evas_selectable_interface.eo @@ -1,6 +1,5 @@ interface Evas.Selectable_Interface (Evas.Signal_Interface) { - data: null; events { selected; unselected; diff --git a/src/lib/evas/canvas/evas_signal_interface.eo b/src/lib/evas/canvas/evas_signal_interface.eo index 733e020..1938c96 100644 --- a/src/lib/evas/canvas/evas_signal_interface.eo +++ b/src/lib/evas/canvas/evas_signal_interface.eo @@ -1,6 +1,5 @@ interface Evas.Signal_Interface () { - data: null; implements { class.constructor; class.destructor; diff --git a/src/lib/evas/canvas/evas_zoomable_interface.eo b/src/lib/evas/canvas/evas_zoomable_interface.eo index ce39aba..43de299 100644 --- a/src/lib/evas/canvas/evas_zoomable_interface.eo +++ b/src/lib/evas/canvas/evas_zoomable_interface.eo @@ -1,6 +1,5 @@ interface Evas.Zoomable_Interface (Evas.Signal_Interface) { - data: null; events { zoom,start; zoom,stop; --
Re: [E-devel] Model-View-Controller
enum Foo {} is simpler but it also means that all tapedef's are equally prefixed by "_". What if you need to have a different prefix or name? In C I prefer 'typedef struct {} Foo;' but 'typedef _Foo Foo' close to the top of header helps readability when you have many structs in your .h however your code editor may help on this too (depending on which features your code editor has) On Thu, Jul 17, 2014 at 9:31 PM, Jean-Philippe André wrote: > Hi > > On Thu, Jul 17, 2014 at 6:31 AM, Daniel Kolesa wrote: > > > 2014-07-16 22:17 GMT+01:00 Larry de Oliveira Lira Jr < > > la...@expertisesolutions.com.br>: > > > > > Hello all > > > > > > we have a new version of emodel based in all feedback here (thanks for > > all) > > > this version is in working progress, and docs is not complete yet, but > > any > > > new feedback is appreciated > > > > > > http://pastebin.com/uAxb3PHp > > > > > > > > Glad you guys are trying out new Eolian stuff already. The enum won't > parse > > yet though... > > > > also > > > > the syntax will allow this notation: > > > > type Foo: enum _Foo > > { > > > > } > > > > just like C allows "typedef enum _Foo { ... } Foo;". > > > > Why do we need to declare type Foo when we already declared enum Foo? > IMO this is an ugly thing in C (typedef struct _A A), no need to repeat it > in Eo. > > enum Foo {} would be simpler, no? > > Unless there's a very good reason for it, of course :) > > Cheers, > > > > > > > > > > > > On Tue, Jul 8, 2014 at 2:46 AM, Carsten Haitzler > > > > wrote: > > > > > > > On Mon, 7 Jul 2014 11:27:27 -0300 Carlos Carvalho > > > > said: > > > > > > > > > Hi Raster! > > > > > > > > > > > > > > > On Tue, Jul 1, 2014 at 6:36 AM, Carsten Haitzler < > > ras...@rasterman.com > > > > > > > > > wrote: > > > > > > > > > > > On Tue, 24 Jun 2014 12:25:53 -0300 Carlos Carvalho > > > > > > said: > > > > > > > > > > > > child_select() and child_select_eval() are basically not > > documented. > > > i > > > > can > > > > > > guess that they may create a EMODEL_EVENT_CHILD_SELECTED later... > > but > > > > what > > > > > > is > > > > > > the difference between these? no info there. and the docs for the > > > > events > > > > > > point > > > > > > back to these functions... > > > > > > > > > > > > prop_list and prop_fetch are also basically undocumented. how do > > > these > > > > > > interact > > > > > > with EMODEL_EVENT_PROPERTY_CHANGE callbacks? i might guess > > prop_list > > > > calls > > > > > > the > > > > > > callback on every property the object has once it has fetched > them. > > > > how do > > > > > > i > > > > > > know the calls are finished? imagine it finds one property every > > > > second and > > > > > > keeps calling... for how long? when is it done? no info there and > > as > > > > best i > > > > > > see, no way to figure it out. prop_fetch fetches a single prop > so i > > > > know > > > > > > once i > > > > > > get the cb after that... i have my prop. now more fun - what if i > > > > > > prop_list and > > > > > > prop_fetch one after the other? ... fetches are delayed... but > the > > > same > > > > > > callback. again - docs! > > > > > > > > > > > > prop_set - this sets a prop. .. what does that have to do with > > > > > > EMODEL_EVENT_PROPERTY_CHANGE event callbacks? no info. no docs. > no > > > > > > explanation. > > > > > > please... explain! > > > > > > > > > > > > > > > > The prop_list will raise EMODEL_EVENT_PROPERTIES_CHANGE event. It > > > > provides > > > > > Eina_Value that may be dependent on implementation. In Emodel_Eio > it > > > > > is Eina_Value_Struct containing all properties. > > > > > > > > ok - so do you get one prop change event per prop list? mutliple? can > > you > > > > get > > > > zero? how do you know the object has no properties at all? (if you > prop > > > > list > > > > and never get a cb... how long should you wait? etc.). i'm pointing > > out a > > > > hole > > > > here. if you have zero props - how do i know for sure in a known > > bounded > > > > amount > > > > of time? you need to let the caller know when their prop change > events > > > are > > > > finished (eg a prop change event with a NULL eina value), but you > need > > to > > > > document this too. also should it maybe be Eina_Value *value in the > > > > property > > > > event? then the value can be shared out from the model internals > > without > > > > copying ... maybe const Eina_Value * to indicate its read-only > > > > > > > > > With prop_fetch you can retrieve the value associated with the > > > property. > > > > > prop_list must be executed beforehand so you can know what are the > > > > > properties available. > > > > > prop_fetch is associated with the event > EMODEL_EVENT_PROPERTY_CHANGE. > > > > > > > > ok - so on a fetch success a prop change event is triggered, what > > happens > > > > on > > > > failure? how do i know it failed? what if i do several fetches in a > > row - > > > > fetch > > > > a, b then c... and later get the cb's... how do i know
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
http://img2.wikia.nocookie.net/__cb2010204123/theyhadrealgoats/images/b/bd/Buzz-and-woody-Dicks-Dicks-everywhere.jpeg On Fri, Jul 18, 2014 at 10:16 AM, Tom Hacohen wrote: > On 18/07/14 14:07, Stefan Schmidt wrote: >> Hello. >> >> On Fri, 2014-07-18 at 13:45, Tom Hacohen wrote: >>> Hello, >>> >>> Could you say in a non-dicky way? >> >> Is pretty please, please with sugar on top needed nowadays? >> >> I asked if you could stop top posting (something you asked people >> dozens of times here) not more and not less. If you take that personal >> its your own feeling not my writing. >> > > If it was not your intention, I take it back. > > However, you've just been a dick (again?). So dude, chill. > > I didn't take the request personally, and it was well deserved (as I've > been a top-posting offender recently), however your style of writing was > very dicky, just so you know. > > -- > Tom. > > > -- > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/02: eolian-cxx: Disabled temporarily the inheritance feature
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5e5b00bc904316fb55a0f8ff2bc971129aa91c44 commit 5e5b00bc904316fb55a0f8ff2bc971129aa91c44 Author: Felipe Magno de Almeida Date: Fri Jul 18 12:00:39 2014 -0300 eolian-cxx: Disabled temporarily the inheritance feature This feature is buggy when using multi-level namespaces. I disabled it temporarily and will fix it ASAP and re-enable it. --- src/examples/eolian_cxx/Makefile.am | 13 +++-- src/lib/eolian_cxx/grammar/inheritance_base_generator.hh | 5 + 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/examples/eolian_cxx/Makefile.am b/src/examples/eolian_cxx/Makefile.am index f1f678a..c5ad78a 100644 --- a/src/examples/eolian_cxx/Makefile.am +++ b/src/examples/eolian_cxx/Makefile.am @@ -9,6 +9,7 @@ EOLIAN_FLAGS = \ -I$(top_srcdir)/src/lib/eo \ -I$(top_srcdir)/src/lib/evas/canvas \ -I$(top_srcdir)/src/lib/edje \ + -I$(top_srcdir)/src/lib/efl \ -I$(top_srcdir)/src/lib/ecore_audio include $(top_srcdir)/src/Makefile_Eolian_Helper.am @@ -79,7 +80,7 @@ SRCS = \ $(IMPL) EXTRA_PROGRAMS = \ - eolian_cxx_simple_01 \ + eolian_cxx_simple_01 #\ eolian_cxx_inherit_01 DATA_FILES = Makefile.examples $(EOS) @@ -91,12 +92,12 @@ eolian_cxx_simple_01_SOURCES = \ eolian_cxx_simple_01.$(OBJEXT): $(GENERATED) -eolian_cxx_inherit_01_SOURCES = \ - eolian_cxx_inherit_01.cc \ - colourable.c \ - colourablesquare.c +# eolian_cxx_inherit_01_SOURCES = \ +# eolian_cxx_inherit_01.cc \ +# colourable.c \ +# colourablesquare.c -eolian_cxx_inherit_01.$(OBJEXT): $(GENERATED) +# eolian_cxx_inherit_01.$(OBJEXT): $(GENERATED) %.eo.hh: %.eo $(AM_V_EOLCXX)$(EOLIAN_CXX) $(EOLIAN_FLAGS) -I${abs_srcdir} -o $@ $< diff --git a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh index fe89e6d..2bc9a0e 100644 --- a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh +++ b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh @@ -384,12 +384,17 @@ operator<<(std::ostream& out, inheritance_eo_class_getter const& x) inline void eo_inheritance_detail_generator(std::ostream& out, eo_class const& cls) { +#if 0 // Will be fixed ASAP out << inheritance_wrappers(cls) +#endif + out << "namespace efl { namespace eo { namespace detail {" << endl << endl +#if 0 // Will be fixed ASAP << inheritance_base_operations(cls) << endl << inheritance_base_operations_size(cls) << inheritance_operations_description(cls) << inheritance_call_constructors(cls) +#endif << inheritance_extension(cls) << inheritance_eo_class_getter(cls) << "} } }" << endl; --
[EGIT] [core/efl] master 02/02: eolian-cxx: Fixed example eo file
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=15ab5f02e27b3692e4d117934e5db8263347a671 commit 15ab5f02e27b3692e4d117934e5db8263347a671 Author: Felipe Magno de Almeida Date: Fri Jul 18 12:23:32 2014 -0300 eolian-cxx: Fixed example eo file The coulourable.eo file got outdated when Eolian syntax changed, it is now updated and fixed. --- src/examples/eolian_cxx/colourable.eo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/examples/eolian_cxx/colourable.eo b/src/examples/eolian_cxx/colourable.eo index 9a28aac..a34f74c 100644 --- a/src/examples/eolian_cxx/colourable.eo +++ b/src/examples/eolian_cxx/colourable.eo @@ -59,6 +59,6 @@ class Colourable (Eo.Base) } } events { -colour_changed(int); +colour_changed: int; } } --
[EGIT] [core/efl] master 01/01: build/drm: Allow building from scratch by not using pkgconfig for internal libs
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6d08b96bd3d41d6089c0456fc5044fce2a0506f9 commit 6d08b96bd3d41d6089c0456fc5044fce2a0506f9 Author: Stefan Schmidt Date: Fri Jul 18 15:29:35 2014 +0200 build/drm: Allow building from scratch by not using pkgconfig for internal libs Using pkgconfig for internal libs turns out to be not a really good idea. It works fine if you already have an efl install with the needed ecore-drm.pc file but it will fail if you build from scratch. We already have a m4 macro for these internal dependencies. Make use of it for the evas drm engine depending on ecore-drm. Fixes T1432 --- configure.ac| 3 ++- m4/evas_check_engine.m4 | 12 ++-- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/configure.ac b/configure.ac index 44480a0..c665cfd 100644 --- a/configure.ac +++ b/configure.ac @@ -3618,7 +3618,8 @@ ECORE_EVAS_MODULE([extn], [${want_ecore_evas_extn}]) ECORE_EVAS_MODULE([ews], [yes]) ECORE_EVAS_MODULE([fb], [${want_fb}]) ECORE_EVAS_MODULE([drm], [${want_drm}], - [ EFL_OPTIONAL_INTERNAL_DEPEND_PKG([ECORE_EVAS], [${want_drm}], [ecore-drm]) ] + [ EFL_OPTIONAL_INTERNAL_DEPEND_PKG([ECORE_EVAS], [${want_drm}], [ecore-drm]) +EFL_OPTIONAL_INTERNAL_DEPEND_PKG([EVAS], [${want_drm}], [ecore-drm]) ] ) ECORE_EVAS_MODULE([psl1ght], [${have_ps3}]) diff --git a/m4/evas_check_engine.m4 b/m4/evas_check_engine.m4 index cb29b14..05ec1f8 100644 --- a/m4/evas_check_engine.m4 +++ b/m4/evas_check_engine.m4 @@ -592,7 +592,7 @@ AC_DEFUN([EVAS_CHECK_ENGINE_DEP_DRM], [ requirement="" -have_dep="no" +have_dep="yes" have_hw_dep="no" evas_engine_[]$1[]_cflags="" evas_engine_[]$1[]_libs="" @@ -603,20 +603,13 @@ else gl_library="gl" fi -PKG_CHECK_EXISTS([ecore-drm], - [ -have_dep="yes" -requirement="ecore-drm" - ], - [have_dep="no"]) - if test "x${have_dep}" = "xyes" ; then AC_MSG_CHECKING([whether to enable Drm hardware acceleration]) if test "x${want_drm_hw_accel}" = "xyes" ; then PKG_CHECK_EXISTS([egl >= 7.10 ${gl_library}], [ have_hw_dep="yes" - requirement="ecore-drm egl >= 7.10 ${gl_library}" + requirement="egl >= 7.10 ${gl_library}" ], [have_hw_dep="no"]) fi @@ -626,7 +619,6 @@ if test "x${have_dep}" = "xyes" ; then requirements_pc_evas="${requirement} ${requirements_pc_evas}" requirements_pc_deps_evas="${requirement} ${requirements_pc_deps_evas}" else - PKG_CHECK_MODULES([DRM], [${requirement}]) evas_engine_[]$1[]_cflags="${DRM_CFLAGS}" evas_engine_[]$1[]_libs="${DRM_LIBS}" fi --
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
On 18/07/14 14:07, Stefan Schmidt wrote: > Hello. > > On Fri, 2014-07-18 at 13:45, Tom Hacohen wrote: >> Hello, >> >> Could you say in a non-dicky way? > > Is pretty please, please with sugar on top needed nowadays? > > I asked if you could stop top posting (something you asked people > dozens of times here) not more and not less. If you take that personal > its your own feeling not my writing. > If it was not your intention, I take it back. However, you've just been a dick (again?). So dude, chill. I didn't take the request personally, and it was well deserved (as I've been a top-posting offender recently), however your style of writing was very dicky, just so you know. -- Tom. -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
Hello. On Fri, 2014-07-18 at 13:45, Tom Hacohen wrote: > Hello, > > Could you say in a non-dicky way? Is pretty please, please with sugar on top needed nowadays? I asked if you could stop top posting (something you asked people dozens of times here) not more and not less. If you take that personal its your own feeling not my writing. regards Stefan Schmidt -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/02: m4/evas_check_engine: Link evas drm engine to ecore-drm instead libdrm
You're already trying to resolve this issue. :) --- Original Message --- Sender : Stefan Schmidt Date : 2014-07-18 21:19 (GMT+09:00) Title : Re: Re: [E-devel] [EGIT] [core/efl] master 01/02: m4/evas_check_engine: Link evas drm engine to ecore-drm instead libdrm Hello. On Fri, 2014-07-18 at 12:12, Gwanglim Lee wrote: > Hello, > > Is there any problem to build efl on the clean machine? Yes, there is. > I mean when we try to configure efl at first build time, then we could get a > configuration error > because that machine doesn't have ecore-drm pkg not yet. > > Actually, I've tested this. I changed name of ecore-drm.pc in my desktop to > temporary thing, and > tried to build efl with ' --with-opengl=es --enable-egl --enable-wayland > --enable-drm' options, > then I saw following configuration error message. > > checking whether to enable Wayland Egl rendering backend... yes > checking for WAYLAND_EGL... yes > checking whether Wayland Egl rendering backend will be built... yes > checking whether to enable Wayland Shm rendering backend... yes > checking for WAYLAND_SHM... yes > checking whether Wayland Shm rendering backend will be built... yes > checking whether to enable Drm rendering backend... yes > configure: error: Drm dependencies not found > > devilhorns and stefan and also I can build efl successfully because our > desktops already have > previous version of ecore-drm pkg. But I think other people can meet this > config error. Look at https://phab.enlightenment.org/T1432 I'm looking at it right now. regards Stefan Schmidt -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
On 18/07/14 13:36, Stefan Schmidt wrote: > Hello. > > On Fri, 2014-07-18 at 13:41, Lukasz Stanislawski wrote: >> >> W dniu 18.07.2014 12:10, Stefan Schmidt pisze: >>> Hello. >>> >>> On Tue, 2014-07-15 at 22:53, Tom Hacohen wrote: On 15/07/14 22:46, ryuan Choi wrote: > I compiled Elementary with tests and got below errors. > Some APIs look changed. > > What I did: > cd elementary > ./autogen.sh --prefix=/usr/elocal --with-tests=regular > make -j8 > sudo make install > make check -j8 > > Error message: > > elm_suite-elm_test_atspi.o: In function > `elm_test_atspi_object_children_get': > /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:262: > undefined reference to `_elm_atspi_root_get' > elm_suite-elm_test_atspi.o: In function `generate_app': > /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:35: > undefined reference to `_elm_atspi_init' > /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:37: > undefined reference to `_elm_atspi_root_get' > elm_suite-elm_test_entry.o: In function `elm_entry_atspi_text_text_get': > /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_entry.c:271: > undefined reference to `elm_interface_atspi_text_text_get' > > Best Regards, > Ryuan Choi > -- > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > Hey, I fixed the issue with the entry test, thanks for reporting. No idea about the rest. Can't find those functions or any trace of them, and don't really have the time to try and find them in history. It would be great if whoever who wrote it will fix it. Stefan: don't we "make check" for elementary on jenkins? I wonder how this was missed for so long. >>> Took me a moment as I was on some training. >>> >>> We run make check but what we never did was actually configuring elm >>> with regular tests. I changed this now and it is segfaulting nicely on >>> jenkins. If anyone wants to have a look. >>> >>> https://build.enlightenment.org/job/changely_elm_gcc_x86_64/ws/src/tests/test-suite.log >> Hi Stefan, >> >> After quick invastigation it looks like segmentation faults may be >> caused by failures in setting elm objects text parts. Generally, all >> test cases doesn't assume that >> setting texts with elm_object_text_set method may fail and make string >> comparison directly on elm_object_text_get return value. >> I can add additonal NULL checks but all-in-all this tests will fail. >> >> It looks like elementary is unable to properly initialize without >> xserver running or because there is no desktop attached.(there are some >> log entries related to undefined desktop environmental variable). I'm >> not getting sigsegv on my local machine. > > Thanks for investigating. There should be Xfb running and thmese are > installed into the destdir, not into the host system. > > Reverting back to not running the tests now as I only have a few hours > left before going on vacation and already messing around with another > bug. OK, if there's xfb you can ignore my other suggestion. I didn't know you had that there. -- Tom. -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
Hello, Could you say in a non-dicky way? On 18/07/14 13:38, Stefan Schmidt wrote: > Hello. > Could you stop top posting here? Sure. I've been infected unfortunately. Talking to too many top-posters recently has made me lazy. > > On Fri, 2014-07-18 at 12:50, Tom Hacohen wrote: >> This essentially means the tests are worthless on Jenkins. > > Like exactness on jenkins :P SCNR No... Exactness doesn't depend on X. > >> Stefan, don't we set engine to buffer? Or is this something else that >> doesn't depend on elm win being created but an heavy dependency on X11 >> things like clipboard and etc? (which btw we should implement for >> framebuffer engine anyway, and may be a good idea to have it for buffer >> too, I don't think we have it atm). > > So this is way more than just enabling regular tests and needs more > work. Reverting back to notrunning them as I only have a few hours > before going on vacation and already messing around with another bug. > Cool. Doing it as as simple as: export ELM_ENGINE=buffer before make check. -- Tom. -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
On Fri, Jul 18, 2014 at 1:41 PM, Lukasz Stanislawski wrote: > W dniu 18.07.2014 12:10, Stefan Schmidt pisze: >> Hello. >> >> On Tue, 2014-07-15 at 22:53, Tom Hacohen wrote: >>> On 15/07/14 22:46, ryuan Choi wrote: I compiled Elementary with tests and got below errors. Some APIs look changed. What I did: cd elementary ./autogen.sh --prefix=/usr/elocal --with-tests=regular make -j8 sudo make install make check -j8 Error message: elm_suite-elm_test_atspi.o: In function `elm_test_atspi_object_children_get': /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:262: undefined reference to `_elm_atspi_root_get' elm_suite-elm_test_atspi.o: In function `generate_app': /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:35: undefined reference to `_elm_atspi_init' /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:37: undefined reference to `_elm_atspi_root_get' elm_suite-elm_test_entry.o: In function `elm_entry_atspi_text_text_get': /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_entry.c:271: undefined reference to `elm_interface_atspi_text_text_get' Best Regards, Ryuan Choi -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >>> Hey, >>> >>> I fixed the issue with the entry test, thanks for reporting. No idea >>> about the rest. Can't find those functions or any trace of them, and >>> don't really have the time to try and find them in history. It would be >>> great if whoever who wrote it will fix it. >>> >>> Stefan: don't we "make check" for elementary on jenkins? I wonder how >>> this was missed for so long. >> Took me a moment as I was on some training. >> >> We run make check but what we never did was actually configuring elm >> with regular tests. I changed this now and it is segfaulting nicely on >> jenkins. If anyone wants to have a look. >> >> https://build.enlightenment.org/job/changely_elm_gcc_x86_64/ws/src/tests/test-suite.log > Hi Stefan, > > After quick invastigation it looks like segmentation faults may be > caused by failures in setting elm objects text parts. Generally, all > test cases doesn't assume that > setting texts with elm_object_text_set method may fail and make string > comparison directly on elm_object_text_get return value. > I can add additonal NULL checks but all-in-all this tests will fail. > > It looks like elementary is unable to properly initialize without > xserver running or because there is no desktop attached.(there are some > log entries related to undefined desktop environmental variable). I'm > not getting sigsegv on my local machine. I did try to test it on my computer and I get also some failure : 77%: Checks: 99, Failures: 21, Errors: 1 elm_test_entry.c:203:F:elm_entry:elm_entry_atspi_text_string_get_paragraph:0: Assertion 'val==" dolor sit"' failed: val==" dolor sit amęt", " dolor sit"==" dolor sit" elm_test_entry.c:242:F:elm_entry:elm_entry_atspi_text_string_get_line:0: Assertion 'val=="Lorem ipśum"' failed: val=="Lorem", "Lorem ipśum"=="Lorem ipśum" elm_test_entry.c:272:F:elm_entry:elm_entry_atspi_text_text_get:0: Assertion 'val==txtnom' failed: val=="Lorem ip", txtnom=="Lorem ipśum dolor sit amęt" elm_test_atspi.c:36:E:elm_atspi:elm_atspi_name_get:0: (after this point) Received signal 11 (Segmentation fault) elm_test_atspi.c:64:F:elm_atspi:elm_atspi_role_get:0: Assertion 'role == ELM_ATSPI_ROLE_APPLICATION' failed elm_test_atspi.c:81:F:elm_atspi:elm_atspi_role_name_get:0: Assertion 'ret != ((void *)0)' failed elm_test_atspi.c:97:F:elm_atspi:elm_atspi_localized_role_name_get:0: Assertion 'ret != ((void *)0)' failed elm_test_atspi.c:121:F:elm_atspi:elm_atspi_description_set:0: Assertion 'ret != ((void *)0)' failed elm_test_atspi.c:140:F:elm_atspi:elm_atspi_children_and_parent:0: Assertion 'eina_list_count(child_list) == 1' failed elm_test_atspi.c:176:F:elm_atspi:elm_atspi_component_position:0: Assertion 'ret == ((Eina_Bool)1)' failed elm_test_atspi.c:205:F:elm_atspi:elm_atspi_component_size:0: Assertion 'ret == ((Eina_Bool)1)' failed elm_test_atspi.c:234:F:elm_atspi:elm_atspi_component_focus:0: Assertion 'ret == ((Eina_Bool)1)' failed elm_test_atspi.c:269:F:elm_atspi:elm_test_atspi_obj_index_in_parent_get:0: Assertion 'win != ((void *)0)' failed elm_test_atspi.c:362:F:elm_atspi:elm_atspi_children_and_parent2:
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
Hello. Could you stop top posting here? On Fri, 2014-07-18 at 12:50, Tom Hacohen wrote: > This essentially means the tests are worthless on Jenkins. Like exactness on jenkins :P SCNR > Stefan, don't we set engine to buffer? Or is this something else that > doesn't depend on elm win being created but an heavy dependency on X11 > things like clipboard and etc? (which btw we should implement for > framebuffer engine anyway, and may be a good idea to have it for buffer > too, I don't think we have it atm). So this is way more than just enabling regular tests and needs more work. Reverting back to notrunning them as I only have a few hours before going on vacation and already messing around with another bug. regards Stefan Schmidt -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
Hello. On Fri, 2014-07-18 at 13:41, Lukasz Stanislawski wrote: > > W dniu 18.07.2014 12:10, Stefan Schmidt pisze: > > Hello. > > > > On Tue, 2014-07-15 at 22:53, Tom Hacohen wrote: > >> On 15/07/14 22:46, ryuan Choi wrote: > >>> I compiled Elementary with tests and got below errors. > >>> Some APIs look changed. > >>> > >>> What I did: > >>> cd elementary > >>> ./autogen.sh --prefix=/usr/elocal --with-tests=regular > >>> make -j8 > >>> sudo make install > >>> make check -j8 > >>> > >>> Error message: > >>> > >>> elm_suite-elm_test_atspi.o: In function > >>> `elm_test_atspi_object_children_get': > >>> /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:262: > >>> undefined reference to `_elm_atspi_root_get' > >>> elm_suite-elm_test_atspi.o: In function `generate_app': > >>> /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:35: > >>> undefined reference to `_elm_atspi_init' > >>> /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:37: > >>> undefined reference to `_elm_atspi_root_get' > >>> elm_suite-elm_test_entry.o: In function `elm_entry_atspi_text_text_get': > >>> /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_entry.c:271: > >>> undefined reference to `elm_interface_atspi_text_text_get' > >>> > >>> Best Regards, > >>> Ryuan Choi > >>> -- > >>> Want fast and easy access to all the code in your enterprise? Index and > >>> search up to 200,000 lines of code with a free copy of Black Duck > >>> Code Sight - the same software that powers the world's largest code > >>> search on Ohloh, the Black Duck Open Hub! Try it now. > >>> http://p.sf.net/sfu/bds > >>> ___ > >>> enlightenment-devel mailing list > >>> enlightenment-devel@lists.sourceforge.net > >>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >>> > >> Hey, > >> > >> I fixed the issue with the entry test, thanks for reporting. No idea > >> about the rest. Can't find those functions or any trace of them, and > >> don't really have the time to try and find them in history. It would be > >> great if whoever who wrote it will fix it. > >> > >> Stefan: don't we "make check" for elementary on jenkins? I wonder how > >> this was missed for so long. > > Took me a moment as I was on some training. > > > > We run make check but what we never did was actually configuring elm > > with regular tests. I changed this now and it is segfaulting nicely on > > jenkins. If anyone wants to have a look. > > > > https://build.enlightenment.org/job/changely_elm_gcc_x86_64/ws/src/tests/test-suite.log > Hi Stefan, > > After quick invastigation it looks like segmentation faults may be > caused by failures in setting elm objects text parts. Generally, all > test cases doesn't assume that > setting texts with elm_object_text_set method may fail and make string > comparison directly on elm_object_text_get return value. > I can add additonal NULL checks but all-in-all this tests will fail. > > It looks like elementary is unable to properly initialize without > xserver running or because there is no desktop attached.(there are some > log entries related to undefined desktop environmental variable). I'm > not getting sigsegv on my local machine. Thanks for investigating. There should be Xfb running and thmese are installed into the destdir, not into the host system. Reverting back to not running the tests now as I only have a few hours left before going on vacation and already messing around with another bug. regards Stefan Schmidt -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Request for help: Adding libefl to autotools
OK. I don't know what I missed before but I started from scratch and now it works. :) -- Tom. On 15/07/14 23:49, Tom Hacohen wrote: > Hey everyone (probably Gustavo), > > As part of my work on efl interfaces I've encountered the need of having > a unified library that is both compiled and ships headers which are used > by all of the efl. > > Unfortunately, I can't seem to figure out (to be honest, I just get > frustrated with autofoo and our setup there) how to add a libefl that > ships libefl.so and Efl.h that are added as dependencies for the rest of > the libs during compile (in tree) and install (correctly updating the > .pc files). > > I'd love it if someone could help me out there. I really don't want to > dive into autofoo and try making sense of our macros if it can be helped > (someone already knows from the top of their head). > > Looking forward for the rescue. > > Just to clarify a bit more with an example: > I'd like to include Efl.h from Edje.h and have libedje.so linked with > libefl.so without going around and updating all of the Makefile.am files > we have all over the place, and have it working in tree and after > installed. I think I've done it (was it me?) a while a go when I added > Eo in tree so it shouldn't be too hard. > > Thanks, > Tom. > > > -- > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/02: m4/evas_check_engine: Link evas drm engine to ecore-drm instead libdrm
Hello. On Fri, 2014-07-18 at 12:12, Gwanglim Lee wrote: > Hello, > > Is there any problem to build efl on the clean machine? Yes, there is. > I mean when we try to configure efl at first build time, then we could get a > configuration error > because that machine doesn't have ecore-drm pkg not yet. > > Actually, I've tested this. I changed name of ecore-drm.pc in my desktop to > temporary thing, and > tried to build efl with ' --with-opengl=es --enable-egl --enable-wayland > --enable-drm' options, > then I saw following configuration error message. > > checking whether to enable Wayland Egl rendering backend... yes > checking for WAYLAND_EGL... yes > checking whether Wayland Egl rendering backend will be built... yes > checking whether to enable Wayland Shm rendering backend... yes > checking for WAYLAND_SHM... yes > checking whether Wayland Shm rendering backend will be built... yes > checking whether to enable Drm rendering backend... yes > configure: error: Drm dependencies not found > > devilhorns and stefan and also I can build efl successfully because our > desktops already have > previous version of ecore-drm pkg. But I think other people can meet this > config error. Look at https://phab.enlightenment.org/T1432 I'm looking at it right now. regards Stefan Schmidt -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/02: m4/evas_check_engine: Link evas drm engine to ecore-drm instead libdrm
Hello, Is there any problem to build efl on the clean machine? I mean when we try to configure efl at first build time, then we could get a configuration error because that machine doesn't have ecore-drm pkg not yet. Actually, I've tested this. I changed name of ecore-drm.pc in my desktop to temporary thing, and tried to build efl with ' --with-opengl=es --enable-egl --enable-wayland --enable-drm' options, then I saw following configuration error message. checking whether to enable Wayland Egl rendering backend... yes checking for WAYLAND_EGL... yes checking whether Wayland Egl rendering backend will be built... yes checking whether to enable Wayland Shm rendering backend... yes checking for WAYLAND_SHM... yes checking whether Wayland Shm rendering backend will be built... yes checking whether to enable Drm rendering backend... yes configure: error: Drm dependencies not found devilhorns and stefan and also I can build efl successfully because our desktops already have previous version of ecore-drm pkg. But I think other people can meet this config error. BR, Gwanglim --- Original Message --- Sender : Stefan Schmidt Date : 2014-07-16 21:38 (GMT+09:00) Title : Re: [E-devel] [EGIT] [core/efl] master 01/02: m4/evas_check_engine: Link evas drm engine to ecore-drm instead libdrm Hello. On Wed, 2014-07-16 at 08:32, Chris Michael wrote: > On 07/16/2014 08:20 AM, Stefan Schmidt wrote: > >Hello. > > > >On Wed, 2014-07-16 at 08:11, Chris Michael wrote: > >>This is not Entirely correct my friend ... > >> > >>While moving to ecore_drm could be a better solution, There are Still > >>drm function calls being made inside evas_drm.c. (drmModeGetEncoder, > >>drmDropMaster, etc, etc) so I think removing the link to libdrm was a > >>bit premature here... > > > >I actually thought about this. :) > > > Ahhh ok, just wanted to be sure you realized it ;) Always good to have another set of eyes looking over the code. :) > >As ecore-drm is depending on libdrm this is no problem as the evas drm > >engine gets the libdrm dependency through ecore-drm in this case. > > > True ... but I think if you are trying to remove libdrm stuff from evas (and > rely on ecore_drm), then we May want to expose some new functions in > Ecore_Drm to deal with these libdrm callsIMO, there is little point in > removing libdrm (from evas) if we are still going to rely on one or two drm > function calls. Better to move those into ecore_drm and remove libdrm from > evas completely. Exactly the plan. It just got postponed while I needed to fix the breakage I did to expedite when testing the drm engine. Now that this is sorted out I will move more things over to ecore-drm and add new functions on the way when needed. regards Stefan Schmidt -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
This essentially means the tests are worthless on Jenkins. Stefan, don't we set engine to buffer? Or is this something else that doesn't depend on elm win being created but an heavy dependency on X11 things like clipboard and etc? (which btw we should implement for framebuffer engine anyway, and may be a good idea to have it for buffer too, I don't think we have it atm). -- Tom. On 18/07/14 12:41, Lukasz Stanislawski wrote: > > W dniu 18.07.2014 12:10, Stefan Schmidt pisze: >> Hello. >> >> On Tue, 2014-07-15 at 22:53, Tom Hacohen wrote: >>> On 15/07/14 22:46, ryuan Choi wrote: I compiled Elementary with tests and got below errors. Some APIs look changed. What I did: cd elementary ./autogen.sh --prefix=/usr/elocal --with-tests=regular make -j8 sudo make install make check -j8 Error message: elm_suite-elm_test_atspi.o: In function `elm_test_atspi_object_children_get': /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:262: undefined reference to `_elm_atspi_root_get' elm_suite-elm_test_atspi.o: In function `generate_app': /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:35: undefined reference to `_elm_atspi_init' /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:37: undefined reference to `_elm_atspi_root_get' elm_suite-elm_test_entry.o: In function `elm_entry_atspi_text_text_get': /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_entry.c:271: undefined reference to `elm_interface_atspi_text_text_get' Best Regards, Ryuan Choi -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >>> Hey, >>> >>> I fixed the issue with the entry test, thanks for reporting. No idea >>> about the rest. Can't find those functions or any trace of them, and >>> don't really have the time to try and find them in history. It would be >>> great if whoever who wrote it will fix it. >>> >>> Stefan: don't we "make check" for elementary on jenkins? I wonder how >>> this was missed for so long. >> Took me a moment as I was on some training. >> >> We run make check but what we never did was actually configuring elm >> with regular tests. I changed this now and it is segfaulting nicely on >> jenkins. If anyone wants to have a look. >> >> https://build.enlightenment.org/job/changely_elm_gcc_x86_64/ws/src/tests/test-suite.log > Hi Stefan, > > After quick invastigation it looks like segmentation faults may be > caused by failures in setting elm objects text parts. Generally, all > test cases doesn't assume that > setting texts with elm_object_text_set method may fail and make string > comparison directly on elm_object_text_get return value. > I can add additonal NULL checks but all-in-all this tests will fail. > > It looks like elementary is unable to properly initialize without > xserver running or because there is no desktop attached.(there are some > log entries related to undefined desktop environmental variable). I'm > not getting sigsegv on my local machine. > > BR, > Lukasz > >> 70%: Checks: 99, Failures: 22, Errors: 7 >> elm_test_check.c:12:E:elm_check:elm_check_onoff_text:0: (after this point) >> Received signal 11 (Segmentation fault) >> elm_test_entry.c:50:F:elm_entry:elm_entry_atspi_text_char_get:0: Assertion >> 'val == expected[0]' failed >> elm_test_entry.c:83:F:elm_entry:elm_entry_atspi_text_char_count:0: Assertion >> 'val == 12' failed >> elm_test_entry.c:89:E:elm_entry:elm_entry_atspi_text_string_get_char:0: >> (after this point) Received signal 11 (Segmentation fault) >> elm_test_entry.c:134:E:elm_entry:elm_entry_atspi_text_string_get_word:0: >> (after this point) Received signal 11 (Segmentation fault) >> elm_test_entry.c:180:E:elm_entry:elm_entry_atspi_text_string_get_paragraph:0: >> (after this point) Received signal 11 (Segmentation fault) >> elm_test_entry.c:226:E:elm_entry:elm_entry_atspi_text_string_get_line:0: >> (after this point) Received signal 11 (Segmentation fault) >> elm_test_entry.c:258:E:elm_entry:elm_entry_atspi_text_text_get:0: (after >> this point) Received signal 11 (Segmentation fault) >> elm_test_entry.c:298:F:elm_entry:elm_entry_atspi_text_selections:0: >> Assertion 'val == 1' failed >> elm_test_atspi.c:36:E:elm_atspi:elm_atspi_name_get:0: (after this point) >> Received signal 11 (Segmentation fault) >> elm_test_atspi.c:64:F:elm_ats
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
W dniu 18.07.2014 13:41, Lukasz Stanislawski pisze: > W dniu 18.07.2014 12:10, Stefan Schmidt pisze: >> Hello. >> >> On Tue, 2014-07-15 at 22:53, Tom Hacohen wrote: >>> On 15/07/14 22:46, ryuan Choi wrote: I compiled Elementary with tests and got below errors. Some APIs look changed. What I did: cd elementary ./autogen.sh --prefix=/usr/elocal --with-tests=regular make -j8 sudo make install make check -j8 Error message: elm_suite-elm_test_atspi.o: In function `elm_test_atspi_object_children_get': /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:262: undefined reference to `_elm_atspi_root_get' elm_suite-elm_test_atspi.o: In function `generate_app': /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:35: undefined reference to `_elm_atspi_init' /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:37: undefined reference to `_elm_atspi_root_get' elm_suite-elm_test_entry.o: In function `elm_entry_atspi_text_text_get': /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_entry.c:271: undefined reference to `elm_interface_atspi_text_text_get' Best Regards, Ryuan Choi -- Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >>> Hey, >>> >>> I fixed the issue with the entry test, thanks for reporting. No idea >>> about the rest. Can't find those functions or any trace of them, and >>> don't really have the time to try and find them in history. It would be >>> great if whoever who wrote it will fix it. >>> >>> Stefan: don't we "make check" for elementary on jenkins? I wonder how >>> this was missed for so long. >> Took me a moment as I was on some training. >> >> We run make check but what we never did was actually configuring elm >> with regular tests. I changed this now and it is segfaulting nicely on >> jenkins. If anyone wants to have a look. >> >> https://build.enlightenment.org/job/changely_elm_gcc_x86_64/ws/src/tests/test-suite.log > Hi Stefan, > > After quick invastigation it looks like segmentation faults may be > caused by failures in setting elm objects text parts. Generally, all > test cases doesn't assume that > setting texts with elm_object_text_set method may fail and make string > comparison directly on elm_object_text_get return value. > I can add additonal NULL checks but all-in-all this tests will fail. > > It looks like elementary is unable to properly initialize without > xserver running or because there is no desktop attached.(there are some > log entries related to undefined desktop environmental variable). I'm > not getting sigsegv on my local machine. > > BR, > Lukasz One more thing - are elementary themes installed on build machine? BR, Lukasz > >> 70%: Checks: 99, Failures: 22, Errors: 7 >> elm_test_check.c:12:E:elm_check:elm_check_onoff_text:0: (after this point) >> Received signal 11 (Segmentation fault) >> elm_test_entry.c:50:F:elm_entry:elm_entry_atspi_text_char_get:0: Assertion >> 'val == expected[0]' failed >> elm_test_entry.c:83:F:elm_entry:elm_entry_atspi_text_char_count:0: Assertion >> 'val == 12' failed >> elm_test_entry.c:89:E:elm_entry:elm_entry_atspi_text_string_get_char:0: >> (after this point) Received signal 11 (Segmentation fault) >> elm_test_entry.c:134:E:elm_entry:elm_entry_atspi_text_string_get_word:0: >> (after this point) Received signal 11 (Segmentation fault) >> elm_test_entry.c:180:E:elm_entry:elm_entry_atspi_text_string_get_paragraph:0: >> (after this point) Received signal 11 (Segmentation fault) >> elm_test_entry.c:226:E:elm_entry:elm_entry_atspi_text_string_get_line:0: >> (after this point) Received signal 11 (Segmentation fault) >> elm_test_entry.c:258:E:elm_entry:elm_entry_atspi_text_text_get:0: (after >> this point) Received signal 11 (Segmentation fault) >> elm_test_entry.c:298:F:elm_entry:elm_entry_atspi_text_selections:0: >> Assertion 'val == 1' failed >> elm_test_atspi.c:36:E:elm_atspi:elm_atspi_name_get:0: (after this point) >> Received signal 11 (Segmentation fault) >> elm_test_atspi.c:64:F:elm_atspi:elm_atspi_role_get:0: Assertion 'role == >> ELM_ATSPI_ROLE_APPLICATION' failed >> elm_test_atspi.c:81:F:elm_atspi:elm_atspi_role_name_get:0: Assertion 'ret != >> ((void *)0)' failed >> elm_test_atspi.c:97:F:elm_atspi:elm_atspi_localized_role_name_get:0: >> Assertion 'ret != ((void *)0)' failed >> e
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
W dniu 18.07.2014 12:10, Stefan Schmidt pisze: > Hello. > > On Tue, 2014-07-15 at 22:53, Tom Hacohen wrote: >> On 15/07/14 22:46, ryuan Choi wrote: >>> I compiled Elementary with tests and got below errors. >>> Some APIs look changed. >>> >>> What I did: >>> cd elementary >>> ./autogen.sh --prefix=/usr/elocal --with-tests=regular >>> make -j8 >>> sudo make install >>> make check -j8 >>> >>> Error message: >>> >>> elm_suite-elm_test_atspi.o: In function >>> `elm_test_atspi_object_children_get': >>> /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:262: >>> undefined reference to `_elm_atspi_root_get' >>> elm_suite-elm_test_atspi.o: In function `generate_app': >>> /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:35: >>> undefined reference to `_elm_atspi_init' >>> /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:37: >>> undefined reference to `_elm_atspi_root_get' >>> elm_suite-elm_test_entry.o: In function `elm_entry_atspi_text_text_get': >>> /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_entry.c:271: >>> undefined reference to `elm_interface_atspi_text_text_get' >>> >>> Best Regards, >>> Ryuan Choi >>> -- >>> Want fast and easy access to all the code in your enterprise? Index and >>> search up to 200,000 lines of code with a free copy of Black Duck >>> Code Sight - the same software that powers the world's largest code >>> search on Ohloh, the Black Duck Open Hub! Try it now. >>> http://p.sf.net/sfu/bds >>> ___ >>> enlightenment-devel mailing list >>> enlightenment-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >>> >> Hey, >> >> I fixed the issue with the entry test, thanks for reporting. No idea >> about the rest. Can't find those functions or any trace of them, and >> don't really have the time to try and find them in history. It would be >> great if whoever who wrote it will fix it. >> >> Stefan: don't we "make check" for elementary on jenkins? I wonder how >> this was missed for so long. > Took me a moment as I was on some training. > > We run make check but what we never did was actually configuring elm > with regular tests. I changed this now and it is segfaulting nicely on > jenkins. If anyone wants to have a look. > > https://build.enlightenment.org/job/changely_elm_gcc_x86_64/ws/src/tests/test-suite.log Hi Stefan, After quick invastigation it looks like segmentation faults may be caused by failures in setting elm objects text parts. Generally, all test cases doesn't assume that setting texts with elm_object_text_set method may fail and make string comparison directly on elm_object_text_get return value. I can add additonal NULL checks but all-in-all this tests will fail. It looks like elementary is unable to properly initialize without xserver running or because there is no desktop attached.(there are some log entries related to undefined desktop environmental variable). I'm not getting sigsegv on my local machine. BR, Lukasz > 70%: Checks: 99, Failures: 22, Errors: 7 > elm_test_check.c:12:E:elm_check:elm_check_onoff_text:0: (after this point) > Received signal 11 (Segmentation fault) > elm_test_entry.c:50:F:elm_entry:elm_entry_atspi_text_char_get:0: Assertion > 'val == expected[0]' failed > elm_test_entry.c:83:F:elm_entry:elm_entry_atspi_text_char_count:0: Assertion > 'val == 12' failed > elm_test_entry.c:89:E:elm_entry:elm_entry_atspi_text_string_get_char:0: > (after this point) Received signal 11 (Segmentation fault) > elm_test_entry.c:134:E:elm_entry:elm_entry_atspi_text_string_get_word:0: > (after this point) Received signal 11 (Segmentation fault) > elm_test_entry.c:180:E:elm_entry:elm_entry_atspi_text_string_get_paragraph:0: > (after this point) Received signal 11 (Segmentation fault) > elm_test_entry.c:226:E:elm_entry:elm_entry_atspi_text_string_get_line:0: > (after this point) Received signal 11 (Segmentation fault) > elm_test_entry.c:258:E:elm_entry:elm_entry_atspi_text_text_get:0: (after this > point) Received signal 11 (Segmentation fault) > elm_test_entry.c:298:F:elm_entry:elm_entry_atspi_text_selections:0: Assertion > 'val == 1' failed > elm_test_atspi.c:36:E:elm_atspi:elm_atspi_name_get:0: (after this point) > Received signal 11 (Segmentation fault) > elm_test_atspi.c:64:F:elm_atspi:elm_atspi_role_get:0: Assertion 'role == > ELM_ATSPI_ROLE_APPLICATION' failed > elm_test_atspi.c:81:F:elm_atspi:elm_atspi_role_name_get:0: Assertion 'ret != > ((void *)0)' failed > elm_test_atspi.c:97:F:elm_atspi:elm_atspi_localized_role_name_get:0: > Assertion 'ret != ((void *)0)' failed > elm_test_atspi.c:121:F:elm_atspi:elm_atspi_description_set:0: Assertion 'ret > != ((void *)0)' failed > elm_test_atspi.c:140:F:elm_atspi:elm_atspi_children_and_parent:0: Assertion > 'eina_list_count(child_list) == 1' failed > elm_test_atspi.c
[EGIT] [core/elementary] master 01/01: notify: removed unnecessary lines
eunue pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=40919d6d94294bc24c0d01088aeb17b10f8560cd commit 40919d6d94294bc24c0d01088aeb17b10f8560cd Author: Jaeun Choi Date: Fri Jul 18 19:36:39 2014 +0900 notify: removed unnecessary lines --- src/lib/elm_notify.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/elm_notify.c b/src/lib/elm_notify.c index de17d82..6f1ec92 100644 --- a/src/lib/elm_notify.c +++ b/src/lib/elm_notify.c @@ -431,8 +431,6 @@ _elm_notify_evas_object_smart_add(Eo *obj, Elm_Notify_Data *priv) priv->allow_events = EINA_TRUE; priv->notify = edje_object_add(evas_object_evas_get(obj)); - priv->horizontal_align = 0.5; - priv->vertical_align = 0.0; evas_object_event_callback_add (obj, EVAS_CALLBACK_RESTACK, _restack_cb, obj); --
[EGIT] [core/elementary] master 01/01: list: call "selected" callback after set focus to the selected item
eunue pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=19c9ae51432093d7d610e3bdae3a0b85737c9e46 commit 19c9ae51432093d7d610e3bdae3a0b85737c9e46 Author: Jaeun Choi Date: Thu Jul 17 16:58:36 2014 +0900 list: call "selected" callback after set focus to the selected item in current code, when a list item is selected, "selected" callback is called first and then focus is set to the item. this is a problem if another widget, popup for instance, is created on top of the list in the callback function. in such a case, the popup should get focused (not the list item). this patch fixes it by changing the order. @fix --- src/lib/elm_list.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c index 99aad4d..7695b7f 100644 --- a/src/lib/elm_list.c +++ b/src/lib/elm_list.c @@ -2729,8 +2729,8 @@ elm_list_item_selected_set(Elm_Object_Item *it, } } _item_highlight(item); -_item_select(item); elm_object_item_focus_set((Elm_Object_Item *)item, EINA_TRUE); +_item_select(item); } else { --
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
> Hello. > > On Tue, 2014-07-15 at 22:53, Tom Hacohen wrote: >> On 15/07/14 22:46, ryuan Choi wrote: >>> I compiled Elementary with tests and got below errors. >>> Some APIs look changed. >>> >>> What I did: >>> cd elementary >>> ./autogen.sh --prefix=/usr/elocal --with-tests=regular >>> make -j8 >>> sudo make install >>> make check -j8 >>> >>> Error message: >>> >>> elm_suite-elm_test_atspi.o: In function >>> `elm_test_atspi_object_children_get': >>> /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:262: >>> undefined reference to `_elm_atspi_root_get' >>> elm_suite-elm_test_atspi.o: In function `generate_app': >>> /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:35: >>> undefined reference to `_elm_atspi_init' >>> /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:37: >>> undefined reference to `_elm_atspi_root_get' >>> elm_suite-elm_test_entry.o: In function `elm_entry_atspi_text_text_get': >>> /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_entry.c:271: >>> undefined reference to `elm_interface_atspi_text_text_get' >>> >>> Best Regards, >>> Ryuan Choi >>> -- >>> Want fast and easy access to all the code in your enterprise? Index and >>> search up to 200,000 lines of code with a free copy of Black Duck >>> Code Sight - the same software that powers the world's largest code >>> search on Ohloh, the Black Duck Open Hub! Try it now. >>> http://p.sf.net/sfu/bds >>> ___ >>> enlightenment-devel mailing list >>> enlightenment-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >>> >> Hey, >> >> I fixed the issue with the entry test, thanks for reporting. No idea >> about the rest. Can't find those functions or any trace of them, and >> don't really have the time to try and find them in history. It would be >> great if whoever who wrote it will fix it. >> >> Stefan: don't we "make check" for elementary on jenkins? I wonder how >> this was missed for so long. > Took me a moment as I was on some training. > > We run make check but what we never did was actually configuring elm > with regular tests. I changed this now and it is segfaulting nicely on > jenkins. If anyone wants to have a look. > > https://build.enlightenment.org/job/changely_elm_gcc_x86_64/ws/src/tests/test-suite.log Hey, I'm taking care of it. Ill commit patches asap. I think which bothers me is that I don't have any sigsegv on my local machine. > > 70%: Checks: 99, Failures: 22, Errors: 7 > elm_test_check.c:12:E:elm_check:elm_check_onoff_text:0: (after this point) > Received signal 11 (Segmentation fault) > elm_test_entry.c:50:F:elm_entry:elm_entry_atspi_text_char_get:0: Assertion > 'val == expected[0]' failed > elm_test_entry.c:83:F:elm_entry:elm_entry_atspi_text_char_count:0: Assertion > 'val == 12' failed > elm_test_entry.c:89:E:elm_entry:elm_entry_atspi_text_string_get_char:0: > (after this point) Received signal 11 (Segmentation fault) > elm_test_entry.c:134:E:elm_entry:elm_entry_atspi_text_string_get_word:0: > (after this point) Received signal 11 (Segmentation fault) > elm_test_entry.c:180:E:elm_entry:elm_entry_atspi_text_string_get_paragraph:0: > (after this point) Received signal 11 (Segmentation fault) > elm_test_entry.c:226:E:elm_entry:elm_entry_atspi_text_string_get_line:0: > (after this point) Received signal 11 (Segmentation fault) > elm_test_entry.c:258:E:elm_entry:elm_entry_atspi_text_text_get:0: (after this > point) Received signal 11 (Segmentation fault) > elm_test_entry.c:298:F:elm_entry:elm_entry_atspi_text_selections:0: Assertion > 'val == 1' failed > elm_test_atspi.c:36:E:elm_atspi:elm_atspi_name_get:0: (after this point) > Received signal 11 (Segmentation fault) > elm_test_atspi.c:64:F:elm_atspi:elm_atspi_role_get:0: Assertion 'role == > ELM_ATSPI_ROLE_APPLICATION' failed > elm_test_atspi.c:81:F:elm_atspi:elm_atspi_role_name_get:0: Assertion 'ret != > ((void *)0)' failed > elm_test_atspi.c:97:F:elm_atspi:elm_atspi_localized_role_name_get:0: > Assertion 'ret != ((void *)0)' failed > elm_test_atspi.c:121:F:elm_atspi:elm_atspi_description_set:0: Assertion 'ret > != ((void *)0)' failed > elm_test_atspi.c:140:F:elm_atspi:elm_atspi_children_and_parent:0: Assertion > 'eina_list_count(child_list) == 1' failed > elm_test_atspi.c:176:F:elm_atspi:elm_atspi_component_position:0: Assertion > 'ret == ((Eina_Bool)1)' failed > elm_test_atspi.c:205:F:elm_atspi:elm_atspi_component_size:0: Assertion 'ret > == ((Eina_Bool)1)' failed > elm_test_atspi.c:234:F:elm_atspi:elm_atspi_component_focus:0: Assertion 'ret > == ((Eina_Bool)1)' failed > elm_test_atspi.c:269:F:elm_atspi:elm_test_atspi_obj_index_in_parent_get:0: > Assertion 'win != ((void *)0)' failed > elm_test_atspi.c:362:F:elm_atspi:elm_atspi_children_and_parent2:0: Assertion > 'eina_list_count(win_children) == 2' failed > elm
Re: [E-devel] Build error while building ELM with '--with-tests=regular'
Hello. On Tue, 2014-07-15 at 22:53, Tom Hacohen wrote: > On 15/07/14 22:46, ryuan Choi wrote: > > I compiled Elementary with tests and got below errors. > > Some APIs look changed. > > > > What I did: > > cd elementary > > ./autogen.sh --prefix=/usr/elocal --with-tests=regular > > make -j8 > > sudo make install > > make check -j8 > > > > Error message: > > > > elm_suite-elm_test_atspi.o: In function > > `elm_test_atspi_object_children_get': > > /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:262: > > undefined reference to `_elm_atspi_root_get' > > elm_suite-elm_test_atspi.o: In function `generate_app': > > /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:35: > > undefined reference to `_elm_atspi_init' > > /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_atspi.c:37: > > undefined reference to `_elm_atspi_root_get' > > elm_suite-elm_test_entry.o: In function `elm_entry_atspi_text_text_get': > > /home/ryuan/workspace/project/efl/elementary/src/tests/elm_test_entry.c:271: > > undefined reference to `elm_interface_atspi_text_text_get' > > > > Best Regards, > > Ryuan Choi > > -- > > Want fast and easy access to all the code in your enterprise? Index and > > search up to 200,000 lines of code with a free copy of Black Duck > > Code Sight - the same software that powers the world's largest code > > search on Ohloh, the Black Duck Open Hub! Try it now. > > http://p.sf.net/sfu/bds > > ___ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > Hey, > > I fixed the issue with the entry test, thanks for reporting. No idea > about the rest. Can't find those functions or any trace of them, and > don't really have the time to try and find them in history. It would be > great if whoever who wrote it will fix it. > > Stefan: don't we "make check" for elementary on jenkins? I wonder how > this was missed for so long. Took me a moment as I was on some training. We run make check but what we never did was actually configuring elm with regular tests. I changed this now and it is segfaulting nicely on jenkins. If anyone wants to have a look. https://build.enlightenment.org/job/changely_elm_gcc_x86_64/ws/src/tests/test-suite.log 70%: Checks: 99, Failures: 22, Errors: 7 elm_test_check.c:12:E:elm_check:elm_check_onoff_text:0: (after this point) Received signal 11 (Segmentation fault) elm_test_entry.c:50:F:elm_entry:elm_entry_atspi_text_char_get:0: Assertion 'val == expected[0]' failed elm_test_entry.c:83:F:elm_entry:elm_entry_atspi_text_char_count:0: Assertion 'val == 12' failed elm_test_entry.c:89:E:elm_entry:elm_entry_atspi_text_string_get_char:0: (after this point) Received signal 11 (Segmentation fault) elm_test_entry.c:134:E:elm_entry:elm_entry_atspi_text_string_get_word:0: (after this point) Received signal 11 (Segmentation fault) elm_test_entry.c:180:E:elm_entry:elm_entry_atspi_text_string_get_paragraph:0: (after this point) Received signal 11 (Segmentation fault) elm_test_entry.c:226:E:elm_entry:elm_entry_atspi_text_string_get_line:0: (after this point) Received signal 11 (Segmentation fault) elm_test_entry.c:258:E:elm_entry:elm_entry_atspi_text_text_get:0: (after this point) Received signal 11 (Segmentation fault) elm_test_entry.c:298:F:elm_entry:elm_entry_atspi_text_selections:0: Assertion 'val == 1' failed elm_test_atspi.c:36:E:elm_atspi:elm_atspi_name_get:0: (after this point) Received signal 11 (Segmentation fault) elm_test_atspi.c:64:F:elm_atspi:elm_atspi_role_get:0: Assertion 'role == ELM_ATSPI_ROLE_APPLICATION' failed elm_test_atspi.c:81:F:elm_atspi:elm_atspi_role_name_get:0: Assertion 'ret != ((void *)0)' failed elm_test_atspi.c:97:F:elm_atspi:elm_atspi_localized_role_name_get:0: Assertion 'ret != ((void *)0)' failed elm_test_atspi.c:121:F:elm_atspi:elm_atspi_description_set:0: Assertion 'ret != ((void *)0)' failed elm_test_atspi.c:140:F:elm_atspi:elm_atspi_children_and_parent:0: Assertion 'eina_list_count(child_list) == 1' failed elm_test_atspi.c:176:F:elm_atspi:elm_atspi_component_position:0: Assertion 'ret == ((Eina_Bool)1)' failed elm_test_atspi.c:205:F:elm_atspi:elm_atspi_component_size:0: Assertion 'ret == ((Eina_Bool)1)' failed elm_test_atspi.c:234:F:elm_atspi:elm_atspi_component_focus:0: Assertion 'ret == ((Eina_Bool)1)' failed elm_test_atspi.c:269:F:elm_atspi:elm_test_atspi_obj_index_in_parent_get:0: Assertion 'win != ((void *)0)' failed elm_test_atspi.c:362:F:elm_atspi:elm_atspi_children_and_parent2:0: Assertion 'eina_list_count(win_children) == 2' failed elm_test_list.c:32:F:elm_list:elm_list_atspi_selection_selected_children_count_get:0: Assertion 'val == 1' failed elm_test_list.c:55:F:elm_list:elm_list_atspi_selection_child_select:0: Assertion 'val == ((Eina_Bool)1)' failed elm_test_li
[EGIT] [core/elementary] master 01/01: popup: Remove unused variable.
stefan pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=a1c7f8a36106565196b46de43e5d20d81a0fc348 commit a1c7f8a36106565196b46de43e5d20d81a0fc348 Author: Stefan Schmidt Date: Fri Jul 18 12:00:52 2014 +0200 popup: Remove unused variable. int_ret was never used here. Looks like a copy and paste error. --- src/lib/elc_popup.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elc_popup.c b/src/lib/elc_popup.c index f307e9a..c5a3d78 100644 --- a/src/lib/elc_popup.c +++ b/src/lib/elc_popup.c @@ -294,7 +294,6 @@ _elm_popup_elm_widget_theme_apply(Eo *obj, Elm_Popup_Data *sd) unsigned int i = 0; Eina_List *elist; char buf[1024], style[1024]; - Eina_Bool int_ret = EINA_FALSE; _mirrored_set(obj, elm_widget_mirrored_get(obj)); --
[EGIT] [core/elementary] master 01/01: atspi: Orca is able to read slider value changes
stanluk pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=17515f2be90e9289f418a50ddfc3ce4186498d64 commit 17515f2be90e9289f418a50ddfc3ce4186498d64 Author: Zbigniew Kosinski Date: Fri Jul 18 11:47:48 2014 +0200 atspi: Orca is able to read slider value changes Reviewers: stanluk Differential Revision: https://phab.enlightenment.org/D1012 --- src/lib/elm_atspi_bridge.c | 13 +++-- src/lib/elm_interface_atspi_accessible.h | 6 ++ src/lib/elm_slider.c | 1 + 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c index b26d54f..66d63eb 100644 --- a/src/lib/elm_atspi_bridge.c +++ b/src/lib/elm_atspi_bridge.c @@ -2723,7 +2723,7 @@ _property_changed_signal_send(void *data, Eo *obj EINA_UNUSED, const Eo_Event_De { Eldbus_Service_Interface *events = data; const char *property = event_info; - char *path, *atspi_desc; + char *atspi_desc; enum _Atspi_Object_Property prop = ATSPI_OBJECT_PROPERTY_LAST; if (!events) @@ -2752,7 +2752,11 @@ _property_changed_signal_send(void *data, Eo *obj EINA_UNUSED, const Eo_Event_De prop = ATSPI_OBJECT_PROPERTY_PARENT; atspi_desc = "accessible-role"; } - + else if (!strcmp(property, "value")) + { +prop = ATSPI_OBJECT_PROPERTY_VALUE; +atspi_desc = "accessible-value"; + } if (prop == ATSPI_OBJECT_PROPERTY_LAST) { ERR("Unrecognized property name!"); @@ -2764,10 +2768,7 @@ _property_changed_signal_send(void *data, Eo *obj EINA_UNUSED, const Eo_Event_De return EINA_FALSE; } - path = _path_from_access_object(obj); - - _object_signal_send(events, ATSPI_OBJECT_EVENT_PROPERTY_CHANGED, atspi_desc, 0, 0, "s", path); - free(path); + _object_signal_send(events, ATSPI_OBJECT_EVENT_PROPERTY_CHANGED, atspi_desc, 0, 0, NULL, NULL); DBG("signal sent PropertyChanged:%s", property); diff --git a/src/lib/elm_interface_atspi_accessible.h b/src/lib/elm_interface_atspi_accessible.h index 6dc6290..0cfdaa7 100644 --- a/src/lib/elm_interface_atspi_accessible.h +++ b/src/lib/elm_interface_atspi_accessible.h @@ -288,6 +288,12 @@ void elm_atspi_attributes_list_free(Eina_List *list); eo_do(obj, eo_event_callback_call(ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_PROPERTY_CHANGED, "role")); /** + * Emits ATSPI 'PropertyChanged' dbus signal for 'Value' property. + */ +#define elm_interface_atspi_accessible_value_changed_signal_emit(obj) \ + eo_do(obj, eo_event_callback_call(ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_PROPERTY_CHANGED, "value")); + +/** * Emits ATSPI 'ChildrenChanged' dbus signal with added child as argument. */ #define elm_interface_atspi_accessible_children_changed_added_signal_emit(obj, child) \ diff --git a/src/lib/elm_slider.c b/src/lib/elm_slider.c index d3ea968..64d4e1d 100644 --- a/src/lib/elm_slider.c +++ b/src/lib/elm_slider.c @@ -98,6 +98,7 @@ _val_fetch(Evas_Object *obj, Eina_Bool user_event) if (user_event) { evas_object_smart_callback_call(obj, SIG_CHANGED, NULL); + elm_interface_atspi_accessible_value_changed_signal_emit(obj); ecore_timer_del(sd->delay); sd->delay = ecore_timer_add(SLIDER_DELAY_CHANGED_INTERVAL, _delay_change, obj); } --
Re: [E-devel] Model-View-Controller
2014-07-18 1:31 GMT+01:00 Jean-Philippe André : > Hi > > On Thu, Jul 17, 2014 at 6:31 AM, Daniel Kolesa wrote: > > > 2014-07-16 22:17 GMT+01:00 Larry de Oliveira Lira Jr < > > la...@expertisesolutions.com.br>: > > > > > Hello all > > > > > > we have a new version of emodel based in all feedback here (thanks for > > all) > > > this version is in working progress, and docs is not complete yet, but > > any > > > new feedback is appreciated > > > > > > http://pastebin.com/uAxb3PHp > > > > > > > > Glad you guys are trying out new Eolian stuff already. The enum won't > parse > > yet though... > > > > also > > > > the syntax will allow this notation: > > > > type Foo: enum _Foo > > { > > > > } > > > > just like C allows "typedef enum _Foo { ... } Foo;". > > > > Why do we need to declare type Foo when we already declared enum Foo? > IMO this is an ugly thing in C (typedef struct _A A), no need to repeat it > in Eo. > > enum Foo {} would be simpler, no? > > Unless there's a very good reason for it, of course :) > > Cheers, > The reason for this is to follow what C does and thus be compatible with C. For example, a header file might define a structure that you wanna use in typedef form inside eo files, so you do: struct @extern _Foo { } /* @extern because we don't want the C generator to geenerate it - it's external */ type Foo: struct _Foo; /* now use it in a class */ > > > > > > > > > > > > On Tue, Jul 8, 2014 at 2:46 AM, Carsten Haitzler > > > > wrote: > > > > > > > On Mon, 7 Jul 2014 11:27:27 -0300 Carlos Carvalho > > > > said: > > > > > > > > > Hi Raster! > > > > > > > > > > > > > > > On Tue, Jul 1, 2014 at 6:36 AM, Carsten Haitzler < > > ras...@rasterman.com > > > > > > > > > wrote: > > > > > > > > > > > On Tue, 24 Jun 2014 12:25:53 -0300 Carlos Carvalho > > > > > > said: > > > > > > > > > > > > child_select() and child_select_eval() are basically not > > documented. > > > i > > > > can > > > > > > guess that they may create a EMODEL_EVENT_CHILD_SELECTED later... > > but > > > > what > > > > > > is > > > > > > the difference between these? no info there. and the docs for the > > > > events > > > > > > point > > > > > > back to these functions... > > > > > > > > > > > > prop_list and prop_fetch are also basically undocumented. how do > > > these > > > > > > interact > > > > > > with EMODEL_EVENT_PROPERTY_CHANGE callbacks? i might guess > > prop_list > > > > calls > > > > > > the > > > > > > callback on every property the object has once it has fetched > them. > > > > how do > > > > > > i > > > > > > know the calls are finished? imagine it finds one property every > > > > second and > > > > > > keeps calling... for how long? when is it done? no info there and > > as > > > > best i > > > > > > see, no way to figure it out. prop_fetch fetches a single prop > so i > > > > know > > > > > > once i > > > > > > get the cb after that... i have my prop. now more fun - what if i > > > > > > prop_list and > > > > > > prop_fetch one after the other? ... fetches are delayed... but > the > > > same > > > > > > callback. again - docs! > > > > > > > > > > > > prop_set - this sets a prop. .. what does that have to do with > > > > > > EMODEL_EVENT_PROPERTY_CHANGE event callbacks? no info. no docs. > no > > > > > > explanation. > > > > > > please... explain! > > > > > > > > > > > > > > > > The prop_list will raise EMODEL_EVENT_PROPERTIES_CHANGE event. It > > > > provides > > > > > Eina_Value that may be dependent on implementation. In Emodel_Eio > it > > > > > is Eina_Value_Struct containing all properties. > > > > > > > > ok - so do you get one prop change event per prop list? mutliple? can > > you > > > > get > > > > zero? how do you know the object has no properties at all? (if you > prop > > > > list > > > > and never get a cb... how long should you wait? etc.). i'm pointing > > out a > > > > hole > > > > here. if you have zero props - how do i know for sure in a known > > bounded > > > > amount > > > > of time? you need to let the caller know when their prop change > events > > > are > > > > finished (eg a prop change event with a NULL eina value), but you > need > > to > > > > document this too. also should it maybe be Eina_Value *value in the > > > > property > > > > event? then the value can be shared out from the model internals > > without > > > > copying ... maybe const Eina_Value * to indicate its read-only > > > > > > > > > With prop_fetch you can retrieve the value associated with the > > > property. > > > > > prop_list must be executed beforehand so you can know what are the > > > > > properties available. > > > > > prop_fetch is associated with the event > EMODEL_EVENT_PROPERTY_CHANGE. > > > > > > > > ok - so on a fetch success a prop change event is triggered, what > > happens > > > > on > > > > failure? how do i know it failed? what if i do several fetches in a > > row - > > > > fetch > > > > a, b then c... and later get the cb's... how do i know which one > > failed? > > > > > > > > > p
[EGIT] [core/efl] master 01/01: evas - render2 - now finally tracking updates right. map/proxy not done
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c11592fb6ab724f06216f2e445e06a48befdef24 commit c11592fb6ab724f06216f2e445e06a48befdef24 Author: Carsten Haitzler (Rasterman) Date: Fri Jul 18 16:56:20 2014 +0900 evas - render2 - now finally tracking updates right. map/proxy not done --- src/lib/evas/canvas/evas_render2_updates.c | 12 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/lib/evas/canvas/evas_render2_updates.c b/src/lib/evas/canvas/evas_render2_updates.c index 893bc81..b17b934 100644 --- a/src/lib/evas/canvas/evas_render2_updates.c +++ b/src/lib/evas/canvas/evas_render2_updates.c @@ -29,12 +29,12 @@ _obj_process(Evas_Public_Data *e, // process object OR walk through child objects if smart and process those Evas_Object_Protected_Data *obj2; Evas_Object *eo_obj = obj->object; - Eina_Inlist *il; + const Eina_Inlist *il; + if (!obj->changed) return; il = evas_object_smart_members_get_direct(eo_obj); if (il) { -if (!evas_object_smart_changed_get(eo_obj)) return; obj->rect_del = EINA_FALSE; obj->render_pre = EINA_FALSE; if (obj->delete_me == 2) return; @@ -44,7 +44,7 @@ _obj_process(Evas_Public_Data *e, obj->func->render_pre(eo_obj, obj, obj->private_data); obj->pre_render_done = EINA_TRUE; int i; for (i = 0; i < l; i++) printf(" "); -printf("SMART %p %p [%10s]\n", e, eo_obj, obj->type); +printf("SMART %p %p [%10s] ch %i\n", e, eo_obj, obj->type, obj->changed); EINA_INLIST_FOREACH(il, obj2) _obj_process(e, obj2, l + 1); @@ -53,11 +53,7 @@ _obj_process(Evas_Public_Data *e, obj->pre_render_done = EINA_FALSE; evas_object_change_reset(eo_obj); } - else - { -if (!obj->changed) return; -_obj_basic_process(e, obj, l); - } + else _obj_basic_process(e, obj, l); } void --
[EGIT] [core/efl] master 01/01: evas - more render2 work - follows smart children now
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bed30a7eb959f763d859741f50f80498d540b39e commit bed30a7eb959f763d859741f50f80498d540b39e Author: Carsten Haitzler (Rasterman) Date: Fri Jul 18 16:51:07 2014 +0900 evas - more render2 work - follows smart children now --- src/lib/evas/canvas/evas_render2.c | 21 - src/lib/evas/canvas/evas_render2_updates.c | 19 --- 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/src/lib/evas/canvas/evas_render2.c b/src/lib/evas/canvas/evas_render2.c index 8acdae8..59d1e63 100644 --- a/src/lib/evas/canvas/evas_render2.c +++ b/src/lib/evas/canvas/evas_render2.c @@ -223,13 +223,10 @@ _evas_render2_stage_render_do(Evas_Public_Data *e, Eina_Bool do_async EINA_UNUSE void *surface; int ux, uy, uw, uh; int cx, cy, cw, ch; -// Evas_Render_Mode render_mode = EVAS_RENDER_MODE_UNDEF; -// if (!do_async) render_mode = EVAS_RENDER_MODE_SYNC; -// else render_mode = EVAS_RENDER_MODE_ASYNC_INIT;// XXX: // XXX: actually render now (either in thread or in mainloop) // XXX: - printf("_evas_render2_stage_render_do %p\n", e); + printf(" _evas_render2_stage_render_do %p\n", e); while ((surface = e->engine.func->output_redraws_next_update_get (e->engine.data.output, @@ -243,7 +240,7 @@ _evas_render2_stage_render_do(Evas_Public_Data *e, Eina_Bool do_async EINA_UNUSE e->engine.func->context_color_set (e->engine.data.output, ctx, rand() & 0xff, rand() & 0xff, rand() & 0xff, 0xff); -printf("%i %i %i %i\n", cx, cy, cw, ch); +printf(" %i %i %i %i\n", cx, cy, cw, ch); e->engine.func->rectangle_draw(e->engine.data.output, ctx, surface, cx, cy, cw, ch, @@ -254,10 +251,6 @@ _evas_render2_stage_render_do(Evas_Public_Data *e, Eina_Bool do_async EINA_UNUSE NEW_RECT(ru->area, ux, uy, uw, uh); e->render.updates = eina_list_append(e->render.updates, ru); evas_cache_image_ref(surface); -// e->engine.func->output_redraws_next_update_push(e->engine.data.output, -//surface, -//ux, uy, uw, uh, -//render_mode); } e->engine.func->output_redraws_clear(e->engine.data.output); } @@ -287,8 +280,9 @@ static void _evas_render2_th_render(void *data) { Evas_Public_Data *e = data; - printf("th rend %p ..\n", e); + printf(".%p\n", e); _evas_render2_stage_render_do(e, EINA_TRUE); + printf("^%p\n", e); } // major functions (called from evas_render.c) @@ -345,13 +339,6 @@ _evas_render2_begin(Eo *eo_e, Eina_Bool make_updates, // if we are not going to be async then do last render stage here if (!do_async) _evas_render2_stage_last(eo_e, make_updates, EINA_FALSE); if (!do_draw) _evas_render2_updates_clean(e); - - e->changed = EINA_FALSE; - e->viewport.changed = EINA_FALSE; - e->output.changed = EINA_FALSE; - e->framespace.changed = EINA_FALSE; - e->invalidate = EINA_FALSE; - evas_module_clean(); return EINA_TRUE; } diff --git a/src/lib/evas/canvas/evas_render2_updates.c b/src/lib/evas/canvas/evas_render2_updates.c index 50f69b6..893bc81 100644 --- a/src/lib/evas/canvas/evas_render2_updates.c +++ b/src/lib/evas/canvas/evas_render2_updates.c @@ -15,7 +15,7 @@ _obj_basic_process(Evas_Public_Data *e, obj->func->render_pre(eo_obj, obj, obj->private_data); obj->pre_render_done = EINA_TRUE; int i; for (i = 0; i < l; i++) printf(" "); - printf("BASIC %p %p\n", e, obj); + printf("BASIC %p %p [%10s]\n", e, eo_obj, obj->type); obj->func->render_post(eo_obj, obj, obj->private_data); obj->restack = EINA_FALSE; obj->pre_render_done = EINA_FALSE; @@ -29,8 +29,10 @@ _obj_process(Evas_Public_Data *e, // process object OR walk through child objects if smart and process those Evas_Object_Protected_Data *obj2; Evas_Object *eo_obj = obj->object; + Eina_Inlist *il; - if (obj->smart.smart) + il = evas_object_smart_members_get_direct(eo_obj); + if (il) { if (!evas_object_smart_changed_get(eo_obj)) return; obj->rect_del = EINA_FALSE; @@ -42,11 +44,9 @@ _obj_process(Evas_Public_Data *e, obj->func->render_pre(eo_obj, obj, obj->private_data); obj->pre_render_done = EINA_TRUE; int i; for (i = 0; i < l; i++) printf(" "); -printf("SMART %p %p\n", e, obj); +printf("SMART %p %p [%10s]\n", e, eo_obj, obj->type); -EINA_INLIST_FOREACH -(evas_object_smart_members_get_direct(obj->object), obj2) - _obj_process(e, obj2, l
[EGIT] [admin/devs] master 01/01: huchi: give a commit access to huchi, Wonguk Jeong.
seoz pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=586caa248c759c8b82732ccb3f58540b2d0f3bd6 commit 586caa248c759c8b82732ccb3f58540b2d0f3bd6 Author: Daniel Juyung Seo Date: Fri Jul 18 16:48:29 2014 +0900 huchi: give a commit access to huchi, Wonguk Jeong. He has been working on efl, enlightenment, elementary, and terminology. Thanks to billiob for the nomination. Please welcome him everybody! --- developers/huchi/id_rsa.pub | 1 + developers/huchi/id_rsa_work.pub | 1 + developers/huchi/info.txt| 11 +++ 3 files changed, 13 insertions(+) diff --git a/developers/huchi/id_rsa.pub b/developers/huchi/id_rsa.pub new file mode 100644 index 000..3db75ca --- /dev/null +++ b/developers/huchi/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa B3NzaC1yc2EDAQABAAABAQC1+qMf59wRUZoSIFxwaj4vuo+xw6SYVE6w4yQqMWb89IC1+brc+JHs4NP1UBYnQW1B/Z9hgEM83qLsmNcs7rlZYJiauURS5QbBiFsZ38mFzVsp/gLpVCIB+smHoLPYMEB5ek88zIJwnWBq44lcRYAQYCpJ7ZQWb43fe7M8UDSE99oJRorcs76O3DJYXM98hiHy9oSdnPPMksYCRJariFNTUFbutJA7lVBxbnyBnhuM5wff64ySxhkexUPujcDSY2M8DkckmorWHh3fNcY45SRSNU+LXHbO2pa1vpNOrzcxFCwVow8DFOFWJv4Q+XM+6lkfQiW+RbuWIXnxV78aeQgx huchi@huchi-ultrabook diff --git a/developers/huchi/id_rsa_work.pub b/developers/huchi/id_rsa_work.pub new file mode 100644 index 000..96f2fa5 --- /dev/null +++ b/developers/huchi/id_rsa_work.pub @@ -0,0 +1 @@ +ssh-rsa B3NzaC1yc2EBIwAAAQEA2EDO0koFok+3YtmzcTwApMJeBkCOM3yBG0H/ErQmAyrmqBcvkMkhz9qJ4WVmjUt+Yy3FjpRmLWhf4JJcLF2DSgdZXoZtdv04Y0QhGJlaoSOQ9K+GSfiOLoKyoZKz90YFoHo6Pg0HnIeIK0gM5W2Zlohg8Gwp94adHyabyk/qqdvhJD/JDKWEWYmCzZYyraOkuu7dttzkqjBBsj23Tvu0XweFaZtzFXkx0eDBLCvY+gXg0IM06frinCgJ0FfuUhtgfK+auI9P378mDneov9Lr+2SucrcrFVY/5V66uNoxbBreBnQoRe3avSlo5n5bgSdentK1Jw88vhAu8oTDgggQrw== wonguk.je...@samsung.com diff --git a/developers/huchi/info.txt b/developers/huchi/info.txt new file mode 100644 index 000..620d27c --- /dev/null +++ b/developers/huchi/info.txt @@ -0,0 +1,11 @@ +Login:huchi +IRC Nick: huchi +Cloak:developer/huchi +Name: Wonguk Jeong +Location: Suwon, Korea +E-Mail: huchi...@gmail.com, wonguk.je...@samsung.com +WWW: +Managing: +Contributing: efl, elementary, terminology, enlightenment +Platform: Ubuntu (Linux), Windows XP/7 +GeoData: 37.2592707 127.0541701 --