Re: [E-devel] Pre-release tarballs for efl and elm 1.14.2
Hello. On 25/06/15 03:19, Daniel Juyung Seo wrote: Hi Stefan Oops I missed the release this time. If there is anything I can help, please let me know. Don't worry. I will handle the rest today. Just make sure you noted the dates for 1.15 alpha (06.07), beta1 (13.07) and beta2 (20.07) in your calendar. :) regards Stefan Schmidt -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 02/38: Ecore_Audio: Avoid abort() in PulseAudio
Hello. On 25/06/15 08:15, Jean-Philippe ANDRÉ wrote: jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6db0ff42291ff4c44815df3a5f77c31ae1bad1ac commit 6db0ff42291ff4c44815df3a5f77c31ae1bad1ac Author: Jean-Philippe Andre jp.an...@samsung.com Date: Wed Jun 24 14:43:07 2015 +0900 Ecore_Audio: Avoid abort() in PulseAudio In some cases (stress test), pulseaudio fails to play a sound and pa_stream_drain() returns NULL, making pa_operation_unref() crash right after. If this is what I think it is then it will be the hero commit of the month if not quarter :) Let's see if we see any more ecore_audio test segfaults after this one. Good job! regards Stefan Schmidt --- src/lib/ecore_audio/ecore_audio_obj_out_pulse.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_audio/ecore_audio_obj_out_pulse.c b/src/lib/ecore_audio/ecore_audio_obj_out_pulse.c index 901d9f6..eab7464 100644 --- a/src/lib/ecore_audio/ecore_audio_obj_out_pulse.c +++ b/src/lib/ecore_audio/ecore_audio_obj_out_pulse.c @@ -184,6 +184,7 @@ _ecore_audio_out_pulse_ecore_audio_out_input_detach(Eo *eo_obj, Ecore_Audio_Out_ { pa_stream *stream = NULL; Eina_Bool ret2 = EINA_FALSE; + pa_operation *op; eo_do_super(eo_obj, MY_CLASS, ret2 = ecore_audio_obj_out_input_detach(in)); if (!ret2) @@ -192,8 +193,14 @@ _ecore_audio_out_pulse_ecore_audio_out_input_detach(Eo *eo_obj, Ecore_Audio_Out_ eo_do(in, stream = eo_key_data_get(pulse_data)); pa_stream_set_write_callback(stream, NULL, NULL); - pa_operation_unref(pa_stream_drain(stream, _drain_cb, NULL)); + op = pa_stream_drain(stream, _drain_cb, NULL); + if (!op) +{ + ERR(Failed to drain PulseAudio stream.); + return EINA_FALSE; +} + pa_operation_unref(op); return EINA_TRUE; } -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ 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/01: eolian: try replacing '.' with locale specific decimal point
On 25/06/15 12:41, Daniel Kolesa wrote: On Thu, Jun 25, 2015 at 11:08 AM, Tom Hacohen t...@osg.samsung.com wrote: Dude, this is a very bad solution. The solution is not replace the text and hope it parses correctly, it's to set locale to C when you parse... That solution is even much worse. At least mine doesn't mess with global data (so for example when running eolian in a threaded environment, there will be no unpredictable locale related behavior, it will leave that completely to the app, which is not true for your locale-setting solution). The correct solution would be to have locale-independent versions of strtod/strtof, which we do not have, and a solution similar to mine is already what some language parsers are doing. Yes. I forgot that Eolian is a library and not an executable. We already covered this on IRC, thanks for putting it here for reference. I hate it when you have to choose between a horrible solution to an even more horrible solution. :( -- Tom. -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] ami - probie to dev?
On Thu, Jun 25, 2015 at 9:58 AM, Carsten Haitzler ras...@rasterman.com wrote: disagreements? :) go ahead :) -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ 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/01: eolian: try replacing '.' with locale specific decimal point
On Thu, Jun 25, 2015 at 11:08 AM, Tom Hacohen t...@osg.samsung.com wrote: Dude, this is a very bad solution. The solution is not replace the text and hope it parses correctly, it's to set locale to C when you parse... That solution is even much worse. At least mine doesn't mess with global data (so for example when running eolian in a threaded environment, there will be no unpredictable locale related behavior, it will leave that completely to the app, which is not true for your locale-setting solution). The correct solution would be to have locale-independent versions of strtod/strtof, which we do not have, and a solution similar to mine is already what some language parsers are doing. -- Tom On 25/06/15 10:43, Daniel Kolesa wrote: q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9a01ab5dd77830c425440bf497c04e7e88426034 commit 9a01ab5dd77830c425440bf497c04e7e88426034 Author: Daniel Kolesa d.kol...@osg.samsung.com Date: Thu Jun 25 10:43:54 2015 +0100 eolian: try replacing '.' with locale specific decimal point This fixes parsing of floating point number with locales that use a comma as decimal separator, as strtof/strtod follows locale specific conventions. @fix --- src/lib/eolian/eo_lexer.c | 44 +++- src/lib/eolian/eo_lexer.h | 9 ++--- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index 5ecdd87..d97c9c6 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -4,6 +4,7 @@ #include stdio.h #include ctype.h +#include locale.h #include setjmp.h #include assert.h @@ -575,6 +576,38 @@ get_type(Eo_Lexer *ls, Eina_Bool is_float) } static void +replace_decpoint(Eo_Lexer *ls, char prevdecp) +{ + if (ls-decpoint == prevdecp) return; + char *bufs = eina_strbuf_string_steal(ls-buff); + char *p = bufs; + while ((p = strchr(p, prevdecp))) *p = ls-decpoint; + eina_strbuf_append(ls-buff, bufs); + free(bufs); +} + +static void +write_val_with_decpoint(Eo_Lexer *ls, Eo_Token *tok, int type) +{ + struct lconv *lc = localeconv(); + char prev = ls-decpoint; + ls-decpoint = lc ? lc-decimal_point[0] : '.'; + if (ls-decpoint == prev) + { +eo_lexer_lex_error(ls, malformed number, TOK_NUMBER); +return; + } + replace_decpoint(ls, prev); + char *end = NULL; + if (type == NUM_FLOAT) + tok-value.f = strtof(eina_strbuf_string_get(ls-buff), end); + else if (type == NUM_DOUBLE) + tok-value.d = strtod(eina_strbuf_string_get(ls-buff), end); + if (end end[0]) + eo_lexer_lex_error(ls, malformed number, TOK_NUMBER); +} + +static void write_val(Eo_Lexer *ls, Eo_Token *tok, Eina_Bool is_float) { const char *str = eina_strbuf_string_get(ls-buff); @@ -582,6 +615,7 @@ write_val(Eo_Lexer *ls, Eo_Token *tok, Eina_Bool is_float) char *end = NULL; if (is_float) { +replace_decpoint(ls, '.'); if (type == NUM_FLOAT) tok-value.f = strtof(str, end); else if (type == NUM_DOUBLE) @@ -598,7 +632,14 @@ write_val(Eo_Lexer *ls, Eo_Token *tok, Eina_Bool is_float) tok-value.ull = strtoull(str, end, 0); } if (end end[0]) - eo_lexer_lex_error(ls, malformed number, TOK_NUMBER); + { +if (is_float) + { + write_val_with_decpoint(ls, tok, type); + return; + } +eo_lexer_lex_error(ls, malformed number, TOK_NUMBER); + } tok-kw = type; } @@ -875,6 +916,7 @@ eo_lexer_set_input(Eo_Lexer *ls, const char *source) ls-filename= get_filename(ls); ls-line_number = 1; ls-icolumn = ls-column = -1; + ls-decpoint= '.'; next_char(ls); if (ls-current != 0xEF) return; diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h index 713599d..c15b8e2 100644 --- a/src/lib/eolian/eo_lexer.h +++ b/src/lib/eolian/eo_lexer.h @@ -161,9 +161,6 @@ typedef struct _Eo_Lexer /* this is jumped to when an error happens */ jmp_buf err_jmp; - /* whether we allow lexing expression related tokens */ - Eina_Bool expr_mode; - /* saved context info */ Eina_List *saved_ctxs; @@ -172,6 +169,12 @@ typedef struct _Eo_Lexer * case of error - and it's nulled when it's written into a more permanent * position (e.g. as part of another struct, or into nodes */ Eo_Lexer_Temps tmp; + + /* whether we allow lexing expression related tokens */ + Eina_Bool expr_mode; + + /* decimal point, by default '.' */ + char decpoint; } Eo_Lexer; int eo_lexer_init (void); -- Monitor 25 network devices or servers for free
Re: [E-devel] [EGIT] [core/efl] master 30/38: Edje tests: Add test case for embedded text filters
Hello. On 25/06/15 08:15, Jean-Philippe ANDRÉ wrote: jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6ca1ce305bc9043561f040d52c85dd2781aaec4d commit 6ca1ce305bc9043561f040d52c85dd2781aaec4d Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Jun 23 12:38:32 2015 +0900 Edje tests: Add test case for embedded text filters This one introduced two implicit declarations. Linking is still right so it goes through. CC tests/edje/tests_edje_edje_suite-edje_test_edje.o tests/edje/edje_test_edje.c: In function ‘edje_test_filters’: tests/edje/edje_test_edje.c:229:72: warning: implicit declaration of function ‘efl_gfx_filter_program_get’ [-Wimplicit-function-declaration] tests/edje/edje_test_edje.c:233:72: warning: implicit declaration of function ‘efl_gfx_filter_source_get’ [-Wimplicit-function-declaration] I tried to include either Efl.h or efl_gfx_filter.eo.hto get thedeclarations but it seems that is not enough. Maybe something with the beta flag. regards Stefan Schmidt --- src/Makefile_Edje.am | 15 ++--- src/tests/edje/data/filter.lua | 14 src/tests/edje/data/test_filters.edc | 62 src/tests/edje/edje_test_edje.c | 35 4 files changed, 122 insertions(+), 4 deletions(-) diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am index 596a02b..17e1cbc 100644 --- a/src/Makefile_Edje.am +++ b/src/Makefile_Edje.am @@ -284,22 +284,29 @@ tests/edje/data/%.edj: tests/edje/data/%.edc bin/edje/edje_cc${EXEEXT} $(AM_V_EDJ) \ $(MKDIR_P) tests/edje/data; \ $(EDJE_CC) $(EDJE_CC_FLAGS) -id $(srcdir)/tests/edje/data \ - -id $(srcdir)/tests/emotion/data $ $@ + -id $(srcdir)/tests/emotion/data \ + -dd $(srcdir)/tests/edje/data \ + $ $@ EDJE_DATA_FILES = tests/edje/data/test_layout.edc \ tests/edje/data/complex_layout.edc \ tests/edje/data/test_parens.edc \ - tests/edje/data/test_masking.edc + tests/edje/data/test_masking.edc \ + tests/edje/data/test_filters.edc \ + tests/edje/data/filter.lua edjedatafilesdir = $(datadir)/edje/data edjedatafiles_DATA = tests/edje/data/test_layout.edj \ tests/edje/data/complex_layout.edj \ tests/edje/data/test_parens.edj \ - tests/edje/data/test_masking.edj + tests/edje/data/test_masking.edj \ + tests/edje/data/test_filters.edj + CLEANFILES += tests/edje/data/test_layout.edj \ tests/edje/data/complex_layout.edj \ tests/edje/data/test_parens.edj \ - tests/edje/data/test_masking.edj + tests/edje/data/test_masking.edj \ + tests/edje/data/test_filters.edj endif diff --git a/src/tests/edje/data/filter.lua b/src/tests/edje/data/filter.lua new file mode 100644 index 000..2ada51b --- /dev/null +++ b/src/tests/edje/data/filter.lua @@ -0,0 +1,14 @@ +-- Evas filter program + +a = buffer { 'alpha' } +b = buffer { src = 'mask' } + +padding_set(10) + +grow { 5, dst = a } +blur { 6, src = a, color = state.color, ox = 1, oy = 1 } +blur { 2, color = color({cc.r, cc.g, cc.b, cc.a }) } +blend { color = mycolor, ox = 1, oy = 1 } + +mask { src = input, mask = b, color = 'cyan', fillmode = 'stretch_y_repeat_x' } + diff --git a/src/tests/edje/data/test_filters.edc b/src/tests/edje/data/test_filters.edc new file mode 100644 index 000..df84c48 --- /dev/null +++ b/src/tests/edje/data/test_filters.edc @@ -0,0 +1,62 @@ +data { + file: filterfile filter.lua; +} +color_classes { + color_class { + name: cc1; + color: 0 0 255 255; + color2: 0 255 255 255; + color3: 0 0 255 255; + } +} +collections { + images { + // found in tests/emotion/data + image: pnl.png COMP; + } + group { name: test_group; + parts { + part { name: background; +type: RECT; +description { state: default 0.0; + color: 33 32 32 255; + rel1.relative: 0 0; + rel2.relative: 1 1; + max: 200 200; +} + } + part { name: mask; +type: IMAGE; +no_render: 1; +description { state: default 0.0; + rel1.relative: 0 0; + rel2.relative: 1 1; + rel.to: text; + max: 999 50; + image.normal: pnl.png; +} + } + part { name: text; +type: TEXT; +description { state: default 0.0; + rel1.relative: 0 0; + rel2.relative: 1 1; + rel1.to: background; + rel2.to:
Re: [E-devel] ami - probie to dev?
+65535 He has been doing very good job for a couple of years. I guarantee he will bring a great impact to our community once he get an access. Thumbs up! Daniel Juyung Seo (SeoZ) On Thu, Jun 25, 2015 at 9:34 PM, Daniel Kolesa dan...@octaforge.org wrote: On Thu, Jun 25, 2015 at 9:58 AM, Carsten Haitzler ras...@rasterman.com wrote: disagreements? :) go ahead :) -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 03/03: ecore con - fix object data referencing for deleted objects
On 25/06/15 10:03, Cedric BAIL wrote: On Thu, Jun 25, 2015 at 10:41 AM, Carsten Haitzler ras...@rasterman.com wrote: On Thu, 25 Jun 2015 09:27:34 +0200 Cedric BAIL cedric.b...@free.fr said: Le 25 juin 2015 06:19, Carsten Haitzler ras...@rasterman.com a écrit : raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6483dc3ce91f94dd147bda1080b0e923d16f4653 commit 6483dc3ce91f94dd147bda1080b0e923d16f4653 Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Jun 25 13:18:22 2015 +0900 ecore con - fix object data referencing for deleted objects if the object has been deleted already, scope data is null. handle it correctly. this fixes a segv in the new efreetd when it starts and there is an existing efreet running thus owning the socket fails. @fix You have been tricked by it to. Data scope get doesn't check anything and can return a valid pointer when asking the wrong class on an object. You usually should not check the return with null as it is hiding a bigger problem. the bigger problem is the deferred events etc. et.c and that an eo object rewrite of ecore-con/ipc will fix. thus this will do for now. :) My point is that it can't do :-) eo_data_scope_get will either suceed or return gargabe, but != NULL. So testing if it is != NULL is just going to make you feel good and anyone looking at the code to which will make it harder to fix the real issue later on. Basically just remove all test != NULL related to the output of an eo_data_scope_get. That pattern is seriously misleading and far from obvious for C dev. It's misleading (maybe) but faster. We could change that, but it'll be significantly slower, and it's a common enough operation and mostly done in a way that doesn't need the check. Sorry, it's low-level c, we make optimisations. Checking if the object is deleted this way is a horrible hack anyway. It will print errors to console, and it only works and doesn't crash because of our fail-safe mechanisms. It's not normal code path. You could maybe use eo_isa() which is a bit more resilient, but still has the same hackiness to it. --- src/lib/ecore_con/ecore_con.c | 210 +- 1 file changed, 124 insertions(+), 86 deletions(-) diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 941dc11..1582c26 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -271,6 +271,7 @@ ecore_con_shutdown(void) Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); Ecore_Con_Event_Server_Add *ev; +if (!svr) continue; svr-delete_me = EINA_TRUE; INF(svr %p is dead, svr); /* some pointer hacks here to prevent double frees if people are being stupid */ @@ -1373,8 +1374,10 @@ _ecore_con_server_eo_base_destructor(Eo *obj, Ecore_Con_Server_Data *svr) ecore_con_ssl_server_shutdown(obj); free(svr-name); + svr-name = NULL; free(svr-path); + svr-path = NULL; eina_stringshare_del(svr-ip); eina_stringshare_del(svr-verify_name); @@ -1394,8 +1397,9 @@ _ecore_con_server_eo_base_destructor(Eo *obj, Ecore_Con_Server_Data *svr) servers = eina_list_remove(servers, obj); svr-data = NULL; -end: eo_do_super(obj, ECORE_CON_SERVER_CLASS, eo_destructor()); +end: + return; } static void @@ -2675,21 +2679,25 @@ _ecore_con_event_client_add_free(Ecore_Con_Server *obj, Ecore_Con_Client_Data *cl = eo_data_scope_get(e-client, ECORE_CON_CLIENT_CLASS); Eina_Bool svrfreed = EINA_FALSE; -cl-event_count = eina_list_remove(cl-event_count, e); -if (cl-host_server) +if ((svr) (cl)) { - Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); - host_server-event_count = eina_list_remove(host_server-event_count, ev); - if ((!svr-event_count) (svr-delete_me)) + cl-event_count = eina_list_remove(cl-event_count, e); + if (cl-host_server) { - _ecore_con_server_free(obj); - svrfreed = EINA_TRUE; + Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); + if (host_server) +host_server-event_count = eina_list_remove(host_server-event_count, ev); + if ((!svr-event_count) (svr-delete_me)) +{ + _ecore_con_server_free(obj); + svrfreed = EINA_TRUE; +} + } + if (!svrfreed) + { + if ((!cl-event_count) (cl-delete_me)) +ecore_con_client_del(e-client); } - } -
Re: [E-devel] [EGIT] [core/efl] master 01/01: eolian: try replacing '.' with locale specific decimal point
Dude, this is a very bad solution. The solution is not replace the text and hope it parses correctly, it's to set locale to C when you parse... -- Tom On 25/06/15 10:43, Daniel Kolesa wrote: q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9a01ab5dd77830c425440bf497c04e7e88426034 commit 9a01ab5dd77830c425440bf497c04e7e88426034 Author: Daniel Kolesa d.kol...@osg.samsung.com Date: Thu Jun 25 10:43:54 2015 +0100 eolian: try replacing '.' with locale specific decimal point This fixes parsing of floating point number with locales that use a comma as decimal separator, as strtof/strtod follows locale specific conventions. @fix --- src/lib/eolian/eo_lexer.c | 44 +++- src/lib/eolian/eo_lexer.h | 9 ++--- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index 5ecdd87..d97c9c6 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -4,6 +4,7 @@ #include stdio.h #include ctype.h +#include locale.h #include setjmp.h #include assert.h @@ -575,6 +576,38 @@ get_type(Eo_Lexer *ls, Eina_Bool is_float) } static void +replace_decpoint(Eo_Lexer *ls, char prevdecp) +{ + if (ls-decpoint == prevdecp) return; + char *bufs = eina_strbuf_string_steal(ls-buff); + char *p = bufs; + while ((p = strchr(p, prevdecp))) *p = ls-decpoint; + eina_strbuf_append(ls-buff, bufs); + free(bufs); +} + +static void +write_val_with_decpoint(Eo_Lexer *ls, Eo_Token *tok, int type) +{ + struct lconv *lc = localeconv(); + char prev = ls-decpoint; + ls-decpoint = lc ? lc-decimal_point[0] : '.'; + if (ls-decpoint == prev) + { +eo_lexer_lex_error(ls, malformed number, TOK_NUMBER); +return; + } + replace_decpoint(ls, prev); + char *end = NULL; + if (type == NUM_FLOAT) + tok-value.f = strtof(eina_strbuf_string_get(ls-buff), end); + else if (type == NUM_DOUBLE) + tok-value.d = strtod(eina_strbuf_string_get(ls-buff), end); + if (end end[0]) + eo_lexer_lex_error(ls, malformed number, TOK_NUMBER); +} + +static void write_val(Eo_Lexer *ls, Eo_Token *tok, Eina_Bool is_float) { const char *str = eina_strbuf_string_get(ls-buff); @@ -582,6 +615,7 @@ write_val(Eo_Lexer *ls, Eo_Token *tok, Eina_Bool is_float) char *end = NULL; if (is_float) { +replace_decpoint(ls, '.'); if (type == NUM_FLOAT) tok-value.f = strtof(str, end); else if (type == NUM_DOUBLE) @@ -598,7 +632,14 @@ write_val(Eo_Lexer *ls, Eo_Token *tok, Eina_Bool is_float) tok-value.ull = strtoull(str, end, 0); } if (end end[0]) - eo_lexer_lex_error(ls, malformed number, TOK_NUMBER); + { +if (is_float) + { + write_val_with_decpoint(ls, tok, type); + return; + } +eo_lexer_lex_error(ls, malformed number, TOK_NUMBER); + } tok-kw = type; } @@ -875,6 +916,7 @@ eo_lexer_set_input(Eo_Lexer *ls, const char *source) ls-filename= get_filename(ls); ls-line_number = 1; ls-icolumn = ls-column = -1; + ls-decpoint= '.'; next_char(ls); if (ls-current != 0xEF) return; diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h index 713599d..c15b8e2 100644 --- a/src/lib/eolian/eo_lexer.h +++ b/src/lib/eolian/eo_lexer.h @@ -161,9 +161,6 @@ typedef struct _Eo_Lexer /* this is jumped to when an error happens */ jmp_buf err_jmp; - /* whether we allow lexing expression related tokens */ - Eina_Bool expr_mode; - /* saved context info */ Eina_List *saved_ctxs; @@ -172,6 +169,12 @@ typedef struct _Eo_Lexer * case of error - and it's nulled when it's written into a more permanent * position (e.g. as part of another struct, or into nodes */ Eo_Lexer_Temps tmp; + + /* whether we allow lexing expression related tokens */ + Eina_Bool expr_mode; + + /* decimal point, by default '.' */ + char decpoint; } Eo_Lexer; int eo_lexer_init (void); -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 03/03: ecore con - fix object data referencing for deleted objects
On Thu, 25 Jun 2015 11:03:38 +0200 Cedric BAIL cedric.b...@free.fr said: On Thu, Jun 25, 2015 at 10:41 AM, Carsten Haitzler ras...@rasterman.com wrote: On Thu, 25 Jun 2015 09:27:34 +0200 Cedric BAIL cedric.b...@free.fr said: Le 25 juin 2015 06:19, Carsten Haitzler ras...@rasterman.com a écrit : raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6483dc3ce91f94dd147bda1080b0e923d16f4653 commit 6483dc3ce91f94dd147bda1080b0e923d16f4653 Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Jun 25 13:18:22 2015 +0900 ecore con - fix object data referencing for deleted objects if the object has been deleted already, scope data is null. handle it correctly. this fixes a segv in the new efreetd when it starts and there is an existing efreet running thus owning the socket fails. @fix You have been tricked by it to. Data scope get doesn't check anything and can return a valid pointer when asking the wrong class on an object. You usually should not check the return with null as it is hiding a bigger problem. the bigger problem is the deferred events etc. et.c and that an eo object rewrite of ecore-con/ipc will fix. thus this will do for now. :) My point is that it can't do :-) eo_data_scope_get will either suceed or return gargabe, but != NULL. So testing if it is != NULL is just nope. wrong. it returns NULL if the obj id is invalid. :) going to make you feel good and anyone looking at the code to which will make it harder to fix the real issue later on. Basically just remove all test != NULL related to the output of an eo_data_scope_get. That pattern is seriously misleading and far from obvious for C dev. no. this is ACTUALLY a segfault. it's not a feel-good. :) it fixed it. --- src/lib/ecore_con/ecore_con.c | 210 +- 1 file changed, 124 insertions(+), 86 deletions(-) diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 941dc11..1582c26 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -271,6 +271,7 @@ ecore_con_shutdown(void) Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); Ecore_Con_Event_Server_Add *ev; +if (!svr) continue; svr-delete_me = EINA_TRUE; INF(svr %p is dead, svr); /* some pointer hacks here to prevent double frees if people are being stupid */ @@ -1373,8 +1374,10 @@ _ecore_con_server_eo_base_destructor(Eo *obj, Ecore_Con_Server_Data *svr) ecore_con_ssl_server_shutdown(obj); free(svr-name); + svr-name = NULL; free(svr-path); + svr-path = NULL; eina_stringshare_del(svr-ip); eina_stringshare_del(svr-verify_name); @@ -1394,8 +1397,9 @@ _ecore_con_server_eo_base_destructor(Eo *obj, Ecore_Con_Server_Data *svr) servers = eina_list_remove(servers, obj); svr-data = NULL; -end: eo_do_super(obj, ECORE_CON_SERVER_CLASS, eo_destructor()); +end: + return; } static void @@ -2675,21 +2679,25 @@ _ecore_con_event_client_add_free(Ecore_Con_Server *obj, Ecore_Con_Client_Data *cl = eo_data_scope_get(e-client, ECORE_CON_CLIENT_CLASS); Eina_Bool svrfreed = EINA_FALSE; -cl-event_count = eina_list_remove(cl-event_count, e); -if (cl-host_server) +if ((svr) (cl)) { - Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); - host_server-event_count = eina_list_remove(host_server-event_count, ev); - if ((!svr-event_count) (svr-delete_me)) + cl-event_count = eina_list_remove(cl-event_count, e); + if (cl-host_server) { - _ecore_con_server_free(obj); - svrfreed = EINA_TRUE; + Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); + if (host_server) +host_server-event_count = eina_list_remove(host_server-event_count, ev); + if ((!svr-event_count) (svr-delete_me)) +{ + _ecore_con_server_free(obj); + svrfreed = EINA_TRUE; +} + } + if (!svrfreed) + { + if ((!cl-event_count) (cl-delete_me)) +ecore_con_client_del(e-client); } - } -if (!svrfreed) - { - if ((!cl-event_count) (cl-delete_me)) - ecore_con_client_del(e-client); } } @@ -2712,21 +2720,25 @@
Re: [E-devel] ami - probie to dev?
You mean _ami_? :) On Thu, 25 Jun 2015 17:58:28 +0900 Carsten Haitzler ras...@rasterman.com (The Rasterman) wrote: disagreements? :) -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] ami - probie to dev?
thumb up. -Regards, Hermet- -Original Message- From: Carsten Haitzlerras...@rasterman.com To: eenlightenment-devel@lists.sourceforge.net; Cc: Sent: 2015-06-25 (목) 17:58:28 Subject: [E-devel] ami - probie to dev? disagreements? :) -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Commit access
Oh my god. I was late, Cedric. I strongly agree with Cedric's suggestion. Sanghyeon has been doing incredible jobs on elementary, especially genlist/gengrid. He has a deep knowledge about overall EFL. I guarantee his impact on our community. Thumbs up!! Go ahead. Thanks, Daniel Juyung Seo (SeoZ) On Fri, Jun 26, 2015 at 1:45 AM, Cedric BAIL cedric.b...@free.fr wrote: Hello, I would like to propose Sanghyeon Lee to receive commit access. He has been doing some great work on reviewing incoming patch on genlist and gengrid. You can look at his work on phab. He is the closest we have from an elementary genlist maintainer at this stage and we seriously need someone to take a good care of his patch. I am relying on him already to do the review on genlist/gengrid related patch on phab and trust his opinion. Does anyone have a different opinion ? Have fun, -- Cedric BAIL -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Efl and Elementary 1.14.2 release
Another stable update for the 1.14.x series. Efl fixes: * pkg-config: fix portability issue on Windows. (T2458) * edje: set GROUP/SWALLOW/EXTERNAL pass events based on mouse events * eina semaphore lock - don't wake up because of signals * ecore: null cb function is unacceptable. * Evas filters: Fix blend with color with rgba buffers * Evas: Remove shader_3d .x generated file from BUILT_SOURCES * eina/simple_xml_parser: don't parse the , in the attribute string. Elementary fixes: * interface scrollerable: modify the loop_v condition in _elm_scroll_momentum_animator() function * fix list item mode change on elm list * win: only trigger del trap if win type is not FAKE * win: do not use deferred ecore evas deletion for FAKE wins * genlist: fix resize of items when added after elm_genlist_clear(). (T2367) Download http://download.enlightenment.org/rel/libs/efl/efl-1.14.2.tar.gz e5699d8183c1540fe45dddaf692254632f9131335e97a09cc313e866a150b42c http://download.enlightenment.org/rel/libs/elementary/elementary-1.14.2.tar.gz 899ad55f3866c66df3fc6840bccbce3c7d93d729760ef761ff97fcbf6f56b72b Building and Dependencies If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before compiling and installing to avoid possible conflicts during compilation. If you are compiling the above, please compile them in the following order: efl elementary If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before building the above. -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 04/11: genlist/list/win: Revert focus highlight animation when looping is enable
Hello Stefan, On Thu, Jun 25, 2015 at 9:08 PM, Stefan Schmidt ste...@osg.samsung.com wrote: Hello. On 25/06/15 17:24, Amitesh Singh wrote: cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=8889b728774bd479294ee5029730c90cdddf4450 commit 8889b728774bd479294ee5029730c90cdddf4450 Author: Amitesh Singh amitesh...@samsung.com Date: Thu Jun 25 16:15:06 2015 +0200 genlist/list/win: Revert focus highlight animation when looping is enable Summary: - Revert focus: Added internal widget APIs of focus highlight object of elm window. This reverts commit 3f98d71830163a154762f2d16301d720c781b7c5. - Revert List: Focus highlight when loop is enable This reverts commit 57ad32a900e71f83441bf7246671b8f16a8ec909. - Revert genlist: Focus highlight when loop is enable This reverts commit 91282a22cba66ee5e7799018d3abe8957fb1b1fa. It would be good to state the reason for a revert. What did break? It does not break anything. Actually nobody needs this feature now. Also this code is very much dependent on theme signal. its just a routine clean up. We did discuss about this with Raster before on IRC. regards Stefan Schmidt -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 04/11: genlist/list/win: Revert focus highlight animation when looping is enable
Hello. On 25/06/15 17:24, Amitesh Singh wrote: cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=8889b728774bd479294ee5029730c90cdddf4450 commit 8889b728774bd479294ee5029730c90cdddf4450 Author: Amitesh Singh amitesh...@samsung.com Date: Thu Jun 25 16:15:06 2015 +0200 genlist/list/win: Revert focus highlight animation when looping is enable Summary: - Revert focus: Added internal widget APIs of focus highlight object of elm window. This reverts commit 3f98d71830163a154762f2d16301d720c781b7c5. - Revert List: Focus highlight when loop is enable This reverts commit 57ad32a900e71f83441bf7246671b8f16a8ec909. - Revert genlist: Focus highlight when loop is enable This reverts commit 91282a22cba66ee5e7799018d3abe8957fb1b1fa. It would be good to state the reason for a revert. What did break? regards Stefan Schmidt -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: Logging: Fix broken logging macros.
On 22/06/15 15:42, Tom Hacohen wrote: As I said in the commit message, why is the alternative logging mechanism even there? Shouldn't it be removed and we just always rely on eina log? No comments anyone? -- Tom. -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Commit access
Hello, I would like to propose Sanghyeon Lee to receive commit access. He has been doing some great work on reviewing incoming patch on genlist and gengrid. You can look at his work on phab. He is the closest we have from an elementary genlist maintainer at this stage and we seriously need someone to take a good care of his patch. I am relying on him already to do the review on genlist/gengrid related patch on phab and trust his opinion. Does anyone have a different opinion ? Have fun, -- Cedric BAIL -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Enventor v0.6.0 Release
Hi folks. This is Hermet. Enventor v0.6.0 is just released after 4 months development. We've mainly focused on stabilizing and improving some fancy features such as auto completion and live edit. We're pretty sure Enventor has been much more useful tool when you writing edc. Enjoy. :) ==Videos== https://youtu.be/i1l5YHmW9cs https://youtu.be/7UEgRUb3b8A ==NEWS== Additions: Support editor font setting(font name, style, size). Add Enventor APis. enventor_object_font_set()/get() APIs. enventor_object_auto_complete_list_show() API. Removes: Get rid of template insert feature per parts. Get rid of tooltips from menu buttons. Improvements: Support more keywords in auto completion. Support more syntax color keywords Update live view with the current part that cursor positioned in. Improve live edit dragging handling. Introduce new command line arguments. Add more new file templates. Support edj output file path set. Update previous enventor config file properly by version info. Support saving edj file from file dialog. Enhance auto completion feature. Support part highlighting for SPACER type. Change short-cut keys for split views. Apply auto indentation when code is pasted. Support toggle effect on Tools GUI. Store/Restore editor split view status. Change live view scaling to zoom in/out concept. Adjust live view zoom range. (0.1 ~ 10.0) Fixes: Fix the compatibility to eo syntax change. Fix library initialization count corruption. Disable part highlight on Live Edit mode. Fix the live view to update by groups correctly. Fix wrong candidate popup position. Fix context corruption of font/view scale up/down. Fix auto completion popup sizing issue. Close auto completion popup if the line is deleted. Fix focus highlight remaining issue when live edit item is selected. Zoom up/down properly on live edit mode. Cancel live edit if the about(F1) is activated. Ctrl + wheel works even with numlock. Package Download http://download.enlightenment.org/rel/apps/enventor/enventor-0.6.0.tar.gz http://download.enlightenment.org/rel/apps/enventor/enventor-0.6.0.tar.bz2 http://download.enlightenment.org/rel/apps/enventor/enventor-0.6.0.tar.xz Source Repository http://git.enlightenment.org/tools/enventor.git See Page https://phab.enlightenment.org/w/projects/enventor/# -Regards, Hermet- -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Commit access
+1 -Regards, Hermet- -Original Message- From: Cedric BAILcedric.b...@free.fr To: e-develenlightenment-devel@lists.sourceforge.net; dltkdgus1...@gmail.com; Cc: Sent: 2015-06-26 (금) 01:45:49 Subject: [E-devel] Commit access Hello, I would like to propose Sanghyeon Lee to receive commit access. He has been doing some great work on reviewing incoming patch on genlist and gengrid. You can look at his work on phab. He is the closest we have from an elementary genlist maintainer at this stage and we seriously need someone to take a good care of his patch. I am relying on him already to do the review on genlist/gengrid related patch on phab and trust his opinion. Does anyone have a different opinion ? Have fun, -- Cedric BAIL -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Commit access
I agree. He has a great knowledge about genlist, gengrid. +1 블로그서명greensun00님의 블로그 안녕하세요. -Original Message- From: ChunEon Parklt;her...@naver.comgt; To: Enlightenment developer listlt;enlightenment-devel@lists.sourceforge.netgt;; lt;dltkdgus1...@gmail.comgt;; Cc: Sent: 2015-06-26 (금) 12:02:52 Subject: Re: [E-devel] Commit access +1 -Regards, Hermet- -Original Message- From: Cedric BAILlt;cedric.b...@free.frgt; To: e-devellt;enlightenment-devel@lists.sourceforge.netgt;; lt;dltkdgus1...@gmail.comgt;; Cc: Sent: 2015-06-26 (금) 01:45:49 Subject: [E-devel] Commit access Hello, I would like to propose Sanghyeon Lee to receive commit access. He has been doing some great work on reviewing incoming patch on genlist and gengrid. You can look at his work on phab. He is the closest we have from an elementary genlist maintainer at this stage and we seriously need someone to take a good care of his patch. I am relying on him already to do the review on genlist/gengrid related patch on phab and trust his opinion. Does anyone have a different opinion ? Have fun, -- Cedric BAIL -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical amp; virtual servers, alerts via email amp; sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical amp; virtual servers, alerts via email amp; sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Commit access
I fully agree with Cedric. He can do many things not only for genlist - but also for other modules. So ! +1 :) -Original Message- From: Daniel Juyung Seolt;seojuyu...@gmail.comgt; To: Enlightenment developer listlt;enlightenment-devel@lists.sourceforge.netgt;; Cc: Sent: 2015-06-26 (금) 05:06:12 Subject: Re: [E-devel] Commit access Oh my god. I was late, Cedric. I strongly agree with Cedric's suggestion. Sanghyeon has been doing incredible jobs on elementary, especially genlist/gengrid. He has a deep knowledge about overall EFL. I guarantee his impact on our community. Thumbs up!! Go ahead. Thanks, Daniel Juyung Seo (SeoZ) On Fri, Jun 26, 2015 at 1:45 AM, Cedric BAIL lt;cedric.b...@free.frgt; wrote: gt; Hello, gt; gt; I would like to propose Sanghyeon Lee to receive commit access. He has gt; been doing some great work on reviewing incoming patch on genlist and gt; gengrid. You can look at his work on phab. He is the closest we have gt; from an elementary genlist maintainer at this stage and we seriously gt; need someone to take a good care of his patch. I am relying on him gt; already to do the review on genlist/gengrid related patch on phab and gt; trust his opinion. gt; Does anyone have a different opinion ? gt; gt; Have fun, gt; -- gt; Cedric BAIL gt; gt; gt; -- gt; Monitor 25 network devices or servers for free with OpManager! gt; OpManager is web-based network management software that monitors gt; network devices and physical amp; virtual servers, alerts via email amp; sms gt; for fault. Monitor 25 devices for free with no restriction. Download now gt; http://ad.doubleclick.net/ddm/clk/292181274;119417398;o gt; ___ gt; enlightenment-devel mailing list gt; enlightenment-devel@lists.sourceforge.net gt; https://lists.sourceforge.net/lists/listinfo/enlightenment-devel gt; -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical amp; virtual servers, alerts via email amp; sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: Logging: Fix broken logging macros.
On Thu, 25 Jun 2015 18:01:36 +0100 Tom Hacohen t...@osg.samsung.com said: On 22/06/15 15:42, Tom Hacohen wrote: As I said in the commit message, why is the alternative logging mechanism even there? Shouldn't it be removed and we just always rely on eina log? No comments anyone? personally i find eina log output painful. mostly because its long. it goes from this long to a a line this long and full of other stuff including escapes and what not so it eventually wraps around at least 2 lines in a standard 80 wide terminal the escapes literally come up horribly: ESC[31mERRESC[0meoESC[31mESC[0mlib/eo/eo.c:780ESC[0m in lib/edje/edje_object.eo.c:420: unable to resolve regular api func 'edje_obj_thaw' 0x7efc4ff8c7d0 in class 'Evas_Rectangle'. literally that is what i get when i less my .xsession-errors. -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [tools/expedite] master 02/03: font_effect: fix JP borking.
On Fri, Jun 26, 2015 at 1:30 AM, Cedric BAIL ced...@osg.samsung.com wrote: cedric pushed a commit to branch master. http://git.enlightenment.org/tools/expedite.git/commit/?id=014001fb20499d175f4e5c896ac4d27bf05c69c5 commit 014001fb20499d175f4e5c896ac4d27bf05c69c5 Author: Cedric BAIL ced...@osg.samsung.com Date: Thu Jun 25 17:56:26 2015 +0200 font_effect: fix JP borking. Thanks :) --- src/bin/font_effect_blur_alpha.c | 6 -- src/bin/font_effect_blur_color.c | 6 -- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/bin/font_effect_blur_alpha.c b/src/bin/font_effect_blur_alpha.c index 8f812c9..14563e1 100644 --- a/src/bin/font_effect_blur_alpha.c +++ b/src/bin/font_effect_blur_alpha.c @@ -1,3 +1,5 @@ +#define EFL_GFX_FILTER_BETA + #undef FNAME #undef NAME #undef ICON @@ -50,9 +52,9 @@ static void _cleanup(void) static void _loop(double t, int f) { char buf[256]; - char *str = padding_set(%d);blur(%d,color=black);; + char *str = padding_set({ %d });blur({%d,color=black });; sprintf(buf, str, MAX_BLUR, ((f % MAX_BLUR) + 1)); - eo_do(text, evas_obj_text_filter_program_set(buf)); + eo_do(text, efl_gfx_filter_program_set(buf, test)); FPS_STD(NAME); } diff --git a/src/bin/font_effect_blur_color.c b/src/bin/font_effect_blur_color.c index 875f440..8f405e0 100644 --- a/src/bin/font_effect_blur_color.c +++ b/src/bin/font_effect_blur_color.c @@ -1,3 +1,5 @@ +#define EFL_GFX_FILTER_BETA + #undef FNAME #undef NAME #undef ICON @@ -52,9 +54,9 @@ static void _cleanup(void) static void _loop(double t, int f) { char buf[256]; - char *str = buffer:a(rgba);padding_set(%d);blend(dst=a,color=darkblue);blur(%d,src=a);; + char *str = a = buffer({ 'rgba' }); padding_set({ %d }); blend({dst=a, color=darkblue});blur({%d,src=a});; sprintf(buf, str, MAX_BLUR, ((f % MAX_BLUR) + 1)); - eo_do(text, evas_obj_text_filter_program_set(buf)); + eo_do(text, efl_gfx_filter_program_set(buf, test)); FPS_STD(NAME); } -- -- Jean-Philippe André -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elm confiug - remove now useless x11 property handling - donr by files
Hi Raster, After this commit, there could be a null dereference issue. 1. In _config_flush_get(), _elm_config becomes NULL in line 1515. 2. In _config_flush_load(), _elm_config should have a valid value. 3. But if eet_open(line 1478) fails or eet_data_read(line 1481) fails, _elm_config remains NULL. 4. This leads NULL dereference in _config_flush_get(). Can you check that? Thanks, Daniel Juyung Seo (SeoZ) On Thu, Jun 18, 2015 at 8:13 PM, Carsten Haitzler ras...@rasterman.com wrote: raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=ac874ffe6254d85bd0a5c05d99c8fa573d04d9d5 commit ac874ffe6254d85bd0a5c05d99c8fa573d04d9d5 Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Jun 18 20:12:04 2015 +0900 elm confiug - remove now useless x11 property handling - donr by files follow on from b1c5de0b9aa67b9d5cc4722e9462830beb3af37b, aa7f859da10ce007a7b945a8703e70161c96146d --- src/lib/elm_config.c | 117 +-- 1 file changed, 1 insertion(+), 116 deletions(-) diff --git a/src/lib/elm_config.c b/src/lib/elm_config.c index b4920ab..b823346 100644 --- a/src/lib/elm_config.c +++ b/src/lib/elm_config.c @@ -125,61 +125,6 @@ static void_color_overlays_cancel(void); #define ELM_CONFIG_LIST(edd, type, member, eddtype) \ EET_DATA_DESCRIPTOR_ADD_LIST(edd, type, #member, member, eddtype) -#ifdef HAVE_ELEMENTARY_X -static Ecore_Event_Handler *_prop_change_handler = NULL; -static Ecore_Timer *_prop_change_delay_timer = NULL; -static Ecore_X_Window _config_win = 0; -#define ATOM_COUNT 3 -static Ecore_X_Atom _atom[ATOM_COUNT]; -static const char *_atom_names[ATOM_COUNT] = -{ - ELM_PROFILE, - ELM_CONFIG, - ELM_CONFIG_WIN -}; -#define ATOM_E_PROFILE0 -#define ATOM_E_CONFIG 1 -#define ATOM_E_CONFIG_WIN 2 - -static Eina_Bool -_prop_change_delay_cb(void *data EINA_UNUSED) -{ - char *s; - - if (!getenv(ELM_PROFILE)) - { -s = ecore_x_window_prop_string_get(_config_win, _atom[ATOM_E_PROFILE]); -if (s) - { - free(_elm_profile); - _elm_profile = s; - } - } - _config_get(); - _prop_change_delay_timer = NULL; - - return ECORE_CALLBACK_CANCEL; -} - -static Eina_Bool -_prop_change(void *data EINA_UNUSED, - int ev_type EINA_UNUSED, - void *ev) -{ - Ecore_X_Event_Window_Property *event = ev; - - if (event-win == _config_win) - { -if (event-atom == _atom[ATOM_E_PROFILE]) - { - ecore_timer_del(_prop_change_delay_timer); - _prop_change_delay_timer = ecore_timer_add(0.1, _prop_change_delay_cb, NULL); - } - } - return ECORE_CALLBACK_PASS_ON; -} -#endif - static void _elm_font_overlays_del_free(void) { @@ -3118,12 +3063,6 @@ EAPI void elm_config_all_flush(void) { FILE *f; - -#ifdef HAVE_ELEMENTARY_X - if (ecore_x_display_get()) - ecore_x_window_prop_string_set(_config_win, _atom[ATOM_E_PROFILE], -_elm_profile); -#endif char buf[PATH_MAX]; _elm_config_user_dir_snprintf(buf, sizeof(buf), config/%s/flush, @@ -3187,7 +3126,6 @@ void _elm_config_sub_shutdown(void) { #ifdef HAVE_ELEMENTARY_X - ELM_SAFE_FREE(_prop_change_delay_timer, ecore_timer_del); if (ecore_x_display_get()) ecore_x_shutdown(); #endif ELM_SAFE_FREE(_eio_monitor, eio_monitor_del); @@ -3251,59 +3189,9 @@ _elm_config_sub_init(void) else /* No $DISPLAY */ init_x = EINA_FALSE; } - if (init_x) { -if (ecore_x_init(NULL)) - { - Ecore_X_Window win = 0, win2 = 0, root; - - if (!ecore_x_screen_is_composited(0)) - _elm_config-compositing = 0; - ecore_x_atoms_get(_atom_names, ATOM_COUNT, _atom); - root = ecore_x_window_root_first_get(); - if (ecore_x_window_prop_window_get(root, -_atom[ATOM_E_CONFIG_WIN], -win, 1) == 1) - { - if (ecore_x_window_prop_window_get(win, - _atom[ATOM_E_CONFIG_WIN], - win2, 1) == 1) -{ - if (win2 == win) _config_win = win; -} - } - if (_config_win == 0) - _config_win = ecore_x_window_permanent_new - (root, _atom[ATOM_E_CONFIG_WIN]); - - ecore_x_event_mask_set(_config_win, -ECORE_X_EVENT_MASK_WINDOW_PROPERTY); - _prop_change_handler = ecore_event_handler_add - (ECORE_X_EVENT_WINDOW_PROPERTY, _prop_change, NULL); - if (!getenv(ELM_PROFILE)) -
Re: [E-devel] [EGIT] [core/efl] master 03/03: ecore con - fix object data referencing for deleted objects
Le 25 juin 2015 06:19, Carsten Haitzler ras...@rasterman.com a écrit : raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6483dc3ce91f94dd147bda1080b0e923d16f4653 commit 6483dc3ce91f94dd147bda1080b0e923d16f4653 Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Jun 25 13:18:22 2015 +0900 ecore con - fix object data referencing for deleted objects if the object has been deleted already, scope data is null. handle it correctly. this fixes a segv in the new efreetd when it starts and there is an existing efreet running thus owning the socket fails. @fix You have been tricked by it to. Data scope get doesn't check anything and can return a valid pointer when asking the wrong class on an object. You usually should not check the return with null as it is hiding a bigger problem. --- src/lib/ecore_con/ecore_con.c | 210 +- 1 file changed, 124 insertions(+), 86 deletions(-) diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 941dc11..1582c26 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -271,6 +271,7 @@ ecore_con_shutdown(void) Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); Ecore_Con_Event_Server_Add *ev; +if (!svr) continue; svr-delete_me = EINA_TRUE; INF(svr %p is dead, svr); /* some pointer hacks here to prevent double frees if people are being stupid */ @@ -1373,8 +1374,10 @@ _ecore_con_server_eo_base_destructor(Eo *obj, Ecore_Con_Server_Data *svr) ecore_con_ssl_server_shutdown(obj); free(svr-name); + svr-name = NULL; free(svr-path); + svr-path = NULL; eina_stringshare_del(svr-ip); eina_stringshare_del(svr-verify_name); @@ -1394,8 +1397,9 @@ _ecore_con_server_eo_base_destructor(Eo *obj, Ecore_Con_Server_Data *svr) servers = eina_list_remove(servers, obj); svr-data = NULL; -end: eo_do_super(obj, ECORE_CON_SERVER_CLASS, eo_destructor()); +end: + return; } static void @@ -2675,21 +2679,25 @@ _ecore_con_event_client_add_free(Ecore_Con_Server *obj, Ecore_Con_Client_Data *cl = eo_data_scope_get(e-client, ECORE_CON_CLIENT_CLASS); Eina_Bool svrfreed = EINA_FALSE; -cl-event_count = eina_list_remove(cl-event_count, e); -if (cl-host_server) +if ((svr) (cl)) { - Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); - host_server-event_count = eina_list_remove(host_server-event_count, ev); - if ((!svr-event_count) (svr-delete_me)) + cl-event_count = eina_list_remove(cl-event_count, e); + if (cl-host_server) { - _ecore_con_server_free(obj); - svrfreed = EINA_TRUE; + Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); + if (host_server) +host_server-event_count = eina_list_remove(host_server-event_count, ev); + if ((!svr-event_count) (svr-delete_me)) +{ + _ecore_con_server_free(obj); + svrfreed = EINA_TRUE; +} + } + if (!svrfreed) + { + if ((!cl-event_count) (cl-delete_me)) +ecore_con_client_del(e-client); } - } -if (!svrfreed) - { - if ((!cl-event_count) (cl-delete_me)) - ecore_con_client_del(e-client); } } @@ -2712,21 +2720,25 @@ _ecore_con_event_client_del_free(Ecore_Con_Server *obj, Ecore_Con_Client_Data *cl = eo_data_scope_get(e-client, ECORE_CON_CLIENT_CLASS); Eina_Bool svrfreed = EINA_FALSE; -cl-event_count = eina_list_remove(cl-event_count, e); -if (cl-host_server) +if ((svr) (cl)) { - Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); - host_server-event_count = eina_list_remove(host_server-event_count, ev); - if ((!svr-event_count) (svr-delete_me)) + cl-event_count = eina_list_remove(cl-event_count, e); + if (cl-host_server) { - _ecore_con_server_free(obj); - svrfreed = EINA_TRUE; + Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); + if (host_server) +host_server-event_count = eina_list_remove(host_server-event_count, ev); + if ((!svr-event_count) (svr-delete_me)) +{ +
Re: [E-devel] [EGIT] [core/efl] master 01/01: eolian_cxx: Use C++ wrappers instead of native types as parameters
Hello. On 24/06/15 16:24, Vitor Sousa wrote: q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dae35333fd905507ddae01a69add184ea1e3d10f commit dae35333fd905507ddae01a69add184ea1e3d10f Author: Vitor Sousa vitorsousasi...@gmail.com Date: Wed Jun 24 15:23:01 2015 +0100 eolian_cxx: Use C++ wrappers instead of native types as parameters Summary: Using C++ wrapper types in the signature of methods of the generated classes. Now, when the type is an Eo type defined in Eolian, eolian_cxx will detect it and use the equivalent C++ wrapper. Types defined in Eolian no longer need to be specified in the lookup table, so removed them from there. Disable wrapping of non-const char*. The current wrapper (unique_ptr) is not suited for some required operations like ownership acquisition from C code. Fix constructing properties that only have the set method. Fix translation of non-const parameters. Modified Makefiles to allow proper inclusion of evas_cxx headers required by some tests and examples. Move one auxiliary function to another reader to make it more accessible. @feature Since this commit the evas 3d tests are now longer compiling on the x86 slaves on jenkins. https://build.enlightenment.org/job/changely_efl_clang_x86/3460/console https://build.enlightenment.org/job/changely_efl_clang_x86_64/3465/console My local build on x86_64 as well as the 64 bit jenkins jobs went through. regards Stefan Schmidt -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 02/38: Ecore_Audio: Avoid abort() in PulseAudio
On Thu, Jun 25, 2015 at 4:39 PM, Stefan Schmidt ste...@osg.samsung.com wrote: Hello. On 25/06/15 08:15, Jean-Philippe ANDRÉ wrote: jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6db0ff42291ff4c44815df3a5f77c31ae1bad1ac commit 6db0ff42291ff4c44815df3a5f77c31ae1bad1ac Author: Jean-Philippe Andre jp.an...@samsung.com Date: Wed Jun 24 14:43:07 2015 +0900 Ecore_Audio: Avoid abort() in PulseAudio In some cases (stress test), pulseaudio fails to play a sound and pa_stream_drain() returns NULL, making pa_operation_unref() crash right after. If this is what I think it is then it will be the hero commit of the month if not quarter :) Let's see if we see any more ecore_audio test segfaults after this one. Good job! Not sure this is related to your problem. Here is what happened: cat a binary file in terminology, the BEL char happens a lot of times, so terminology will try to play sounds all the time, but PulseAudio fails to open more streams. The crash happened during eo_del() and was an abort(), not SIGSEGV. The root cause of this abort() is still unfixed: too many plays at once. Terminology or ecore_audio should just stop trying to play that many samples, or reuse existing streams maybe (this is just me thinking out loud). Best regards, regards Stefan Schmidt --- src/lib/ecore_audio/ecore_audio_obj_out_pulse.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_audio/ecore_audio_obj_out_pulse.c b/src/lib/ecore_audio/ecore_audio_obj_out_pulse.c index 901d9f6..eab7464 100644 --- a/src/lib/ecore_audio/ecore_audio_obj_out_pulse.c +++ b/src/lib/ecore_audio/ecore_audio_obj_out_pulse.c @@ -184,6 +184,7 @@ _ecore_audio_out_pulse_ecore_audio_out_input_detach(Eo *eo_obj, Ecore_Audio_Out_ { pa_stream *stream = NULL; Eina_Bool ret2 = EINA_FALSE; + pa_operation *op; eo_do_super(eo_obj, MY_CLASS, ret2 = ecore_audio_obj_out_input_detach(in)); if (!ret2) @@ -192,8 +193,14 @@ _ecore_audio_out_pulse_ecore_audio_out_input_detach(Eo *eo_obj, Ecore_Audio_Out_ eo_do(in, stream = eo_key_data_get(pulse_data)); pa_stream_set_write_callback(stream, NULL, NULL); - pa_operation_unref(pa_stream_drain(stream, _drain_cb, NULL)); + op = pa_stream_drain(stream, _drain_cb, NULL); + if (!op) +{ + ERR(Failed to drain PulseAudio stream.); + return EINA_FALSE; +} + pa_operation_unref(op); return EINA_TRUE; } -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Jean-Philippe André -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] ami - probie to dev?
disagreements? :) -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 03/03: ecore con - fix object data referencing for deleted objects
On Thu, Jun 25, 2015 at 10:41 AM, Carsten Haitzler ras...@rasterman.com wrote: On Thu, 25 Jun 2015 09:27:34 +0200 Cedric BAIL cedric.b...@free.fr said: Le 25 juin 2015 06:19, Carsten Haitzler ras...@rasterman.com a écrit : raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6483dc3ce91f94dd147bda1080b0e923d16f4653 commit 6483dc3ce91f94dd147bda1080b0e923d16f4653 Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Jun 25 13:18:22 2015 +0900 ecore con - fix object data referencing for deleted objects if the object has been deleted already, scope data is null. handle it correctly. this fixes a segv in the new efreetd when it starts and there is an existing efreet running thus owning the socket fails. @fix You have been tricked by it to. Data scope get doesn't check anything and can return a valid pointer when asking the wrong class on an object. You usually should not check the return with null as it is hiding a bigger problem. the bigger problem is the deferred events etc. et.c and that an eo object rewrite of ecore-con/ipc will fix. thus this will do for now. :) My point is that it can't do :-) eo_data_scope_get will either suceed or return gargabe, but != NULL. So testing if it is != NULL is just going to make you feel good and anyone looking at the code to which will make it harder to fix the real issue later on. Basically just remove all test != NULL related to the output of an eo_data_scope_get. That pattern is seriously misleading and far from obvious for C dev. --- src/lib/ecore_con/ecore_con.c | 210 +- 1 file changed, 124 insertions(+), 86 deletions(-) diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 941dc11..1582c26 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -271,6 +271,7 @@ ecore_con_shutdown(void) Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); Ecore_Con_Event_Server_Add *ev; +if (!svr) continue; svr-delete_me = EINA_TRUE; INF(svr %p is dead, svr); /* some pointer hacks here to prevent double frees if people are being stupid */ @@ -1373,8 +1374,10 @@ _ecore_con_server_eo_base_destructor(Eo *obj, Ecore_Con_Server_Data *svr) ecore_con_ssl_server_shutdown(obj); free(svr-name); + svr-name = NULL; free(svr-path); + svr-path = NULL; eina_stringshare_del(svr-ip); eina_stringshare_del(svr-verify_name); @@ -1394,8 +1397,9 @@ _ecore_con_server_eo_base_destructor(Eo *obj, Ecore_Con_Server_Data *svr) servers = eina_list_remove(servers, obj); svr-data = NULL; -end: eo_do_super(obj, ECORE_CON_SERVER_CLASS, eo_destructor()); +end: + return; } static void @@ -2675,21 +2679,25 @@ _ecore_con_event_client_add_free(Ecore_Con_Server *obj, Ecore_Con_Client_Data *cl = eo_data_scope_get(e-client, ECORE_CON_CLIENT_CLASS); Eina_Bool svrfreed = EINA_FALSE; -cl-event_count = eina_list_remove(cl-event_count, e); -if (cl-host_server) +if ((svr) (cl)) { - Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); - host_server-event_count = eina_list_remove(host_server-event_count, ev); - if ((!svr-event_count) (svr-delete_me)) + cl-event_count = eina_list_remove(cl-event_count, e); + if (cl-host_server) { - _ecore_con_server_free(obj); - svrfreed = EINA_TRUE; + Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); + if (host_server) +host_server-event_count = eina_list_remove(host_server-event_count, ev); + if ((!svr-event_count) (svr-delete_me)) +{ + _ecore_con_server_free(obj); + svrfreed = EINA_TRUE; +} + } + if (!svrfreed) + { + if ((!cl-event_count) (cl-delete_me)) +ecore_con_client_del(e-client); } - } -if (!svrfreed) - { - if ((!cl-event_count) (cl-delete_me)) - ecore_con_client_del(e-client); } } @@ -2712,21 +2720,25 @@ _ecore_con_event_client_del_free(Ecore_Con_Server *obj, Ecore_Con_Client_Data *cl = eo_data_scope_get(e-client, ECORE_CON_CLIENT_CLASS); Eina_Bool svrfreed = EINA_FALSE; -cl-event_count = eina_list_remove(cl-event_count, e); -if (cl-host_server) +if ((svr) (cl)) {
Re: [E-devel] [EGIT] [core/efl] master 03/03: ecore con - fix object data referencing for deleted objects
On Thu, 25 Jun 2015 09:27:34 +0200 Cedric BAIL cedric.b...@free.fr said: Le 25 juin 2015 06:19, Carsten Haitzler ras...@rasterman.com a écrit : raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6483dc3ce91f94dd147bda1080b0e923d16f4653 commit 6483dc3ce91f94dd147bda1080b0e923d16f4653 Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Jun 25 13:18:22 2015 +0900 ecore con - fix object data referencing for deleted objects if the object has been deleted already, scope data is null. handle it correctly. this fixes a segv in the new efreetd when it starts and there is an existing efreet running thus owning the socket fails. @fix You have been tricked by it to. Data scope get doesn't check anything and can return a valid pointer when asking the wrong class on an object. You usually should not check the return with null as it is hiding a bigger problem. the bigger problem is the deferred events etc. et.c and that an eo object rewrite of ecore-con/ipc will fix. thus this will do for now. :) --- src/lib/ecore_con/ecore_con.c | 210 +- 1 file changed, 124 insertions(+), 86 deletions(-) diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 941dc11..1582c26 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -271,6 +271,7 @@ ecore_con_shutdown(void) Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); Ecore_Con_Event_Server_Add *ev; +if (!svr) continue; svr-delete_me = EINA_TRUE; INF(svr %p is dead, svr); /* some pointer hacks here to prevent double frees if people are being stupid */ @@ -1373,8 +1374,10 @@ _ecore_con_server_eo_base_destructor(Eo *obj, Ecore_Con_Server_Data *svr) ecore_con_ssl_server_shutdown(obj); free(svr-name); + svr-name = NULL; free(svr-path); + svr-path = NULL; eina_stringshare_del(svr-ip); eina_stringshare_del(svr-verify_name); @@ -1394,8 +1397,9 @@ _ecore_con_server_eo_base_destructor(Eo *obj, Ecore_Con_Server_Data *svr) servers = eina_list_remove(servers, obj); svr-data = NULL; -end: eo_do_super(obj, ECORE_CON_SERVER_CLASS, eo_destructor()); +end: + return; } static void @@ -2675,21 +2679,25 @@ _ecore_con_event_client_add_free(Ecore_Con_Server *obj, Ecore_Con_Client_Data *cl = eo_data_scope_get(e-client, ECORE_CON_CLIENT_CLASS); Eina_Bool svrfreed = EINA_FALSE; -cl-event_count = eina_list_remove(cl-event_count, e); -if (cl-host_server) +if ((svr) (cl)) { - Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); - host_server-event_count = eina_list_remove(host_server-event_count, ev); - if ((!svr-event_count) (svr-delete_me)) + cl-event_count = eina_list_remove(cl-event_count, e); + if (cl-host_server) { - _ecore_con_server_free(obj); - svrfreed = EINA_TRUE; + Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); + if (host_server) +host_server-event_count = eina_list_remove(host_server-event_count, ev); + if ((!svr-event_count) (svr-delete_me)) +{ + _ecore_con_server_free(obj); + svrfreed = EINA_TRUE; +} + } + if (!svrfreed) + { + if ((!cl-event_count) (cl-delete_me)) +ecore_con_client_del(e-client); } - } -if (!svrfreed) - { - if ((!cl-event_count) (cl-delete_me)) - ecore_con_client_del(e-client); } } @@ -2712,21 +2720,25 @@ _ecore_con_event_client_del_free(Ecore_Con_Server *obj, Ecore_Con_Client_Data *cl = eo_data_scope_get(e-client, ECORE_CON_CLIENT_CLASS); Eina_Bool svrfreed = EINA_FALSE; -cl-event_count = eina_list_remove(cl-event_count, e); -if (cl-host_server) +if ((svr) (cl)) { - Ecore_Con_Server_Data *host_server = eo_data_scope_get(cl-host_server, ECORE_CON_SERVER_CLASS); - host_server-event_count = eina_list_remove(host_server-event_count, ev); - if ((!svr-event_count) (svr-delete_me)) + cl-event_count = eina_list_remove(cl-event_count, e); + if (cl-host_server) { - _ecore_con_server_free(obj); - svrfreed = EINA_TRUE; +
Re: [E-devel] [EGIT] [core/efl] master 02/38: Ecore_Audio: Avoid abort() in PulseAudio
Hello. On 25/06/15 10:54, Jean-Philippe André wrote: On Thu, Jun 25, 2015 at 4:39 PM, Stefan Schmidt ste...@osg.samsung.com wrote: Hello. On 25/06/15 08:15, Jean-Philippe ANDRÉ wrote: jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6db0ff42291ff4c44815df3a5f77c31ae1bad1ac commit 6db0ff42291ff4c44815df3a5f77c31ae1bad1ac Author: Jean-Philippe Andre jp.an...@samsung.com Date: Wed Jun 24 14:43:07 2015 +0900 Ecore_Audio: Avoid abort() in PulseAudio In some cases (stress test), pulseaudio fails to play a sound and pa_stream_drain() returns NULL, making pa_operation_unref() crash right after. If this is what I think it is then it will be the hero commit of the month if not quarter :) Let's see if we see any more ecore_audio test segfaults after this one. Good job! Not sure this is related to your problem. I see, you don't want the hero commit of the month award. :P Here is what happened: cat a binary file in terminology, the BEL char happens a lot of times, so terminology will try to play sounds all the time, but PulseAudio fails to open more streams. The crash happened during eo_del() and was an abort(), not SIGSEGV. The root cause of this abort() is still unfixed: too many plays at once. Terminology or ecore_audio should just stop trying to play that many samples, or reuse existing streams maybe (this is just me thinking out loud). ok, that really sounds different from the problems in the ecore_audio tests. regards Stefan Schmidt -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ 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/01: eolian_cxx: Use C++ wrappers instead of native types as parameters
On Thu, Jun 25, 2015 at 9:00 AM, Stefan Schmidt ste...@osg.samsung.com wrote: Hello. On 24/06/15 16:24, Vitor Sousa wrote: q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dae35333fd905507ddae01a69add184ea1e3d10f commit dae35333fd905507ddae01a69add184ea1e3d10f Author: Vitor Sousa vitorsousasi...@gmail.com Date: Wed Jun 24 15:23:01 2015 +0100 eolian_cxx: Use C++ wrappers instead of native types as parameters Summary: Using C++ wrapper types in the signature of methods of the generated classes. Now, when the type is an Eo type defined in Eolian, eolian_cxx will detect it and use the equivalent C++ wrapper. Types defined in Eolian no longer need to be specified in the lookup table, so removed them from there. Disable wrapping of non-const char*. The current wrapper (unique_ptr) is not suited for some required operations like ownership acquisition from C code. Fix constructing properties that only have the set method. Fix translation of non-const parameters. Modified Makefiles to allow proper inclusion of evas_cxx headers required by some tests and examples. Move one auxiliary function to another reader to make it more accessible. @feature Since this commit the evas 3d tests are now longer compiling on the x86 slaves on jenkins. https://build.enlightenment.org/job/changely_efl_clang_x86/3460/console https://build.enlightenment.org/job/changely_efl_clang_x86_64/3465/console My local build on x86_64 as well as the 64 bit jenkins jobs went through. This is odd and doesn't really look architecture specific... I'll investigate it. regards Stefan Schmidt -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel