Re: [E-devel] [EGIT] [core/efl] master 02/02: Evas: adding image dump debug feature for wayland_egl backend
Thank you for porting this !! :) Cheers, dh On 23/07/13 02:29, Sung W. Park - Enlightenment Git wrote: sung pushed a commit to branch master. commit 7aa516c01a620da3438de864ac0c0e5b80c93d0b Author: Sung W. Park dunamis.p...@samsung.com Date: Tue Jul 23 10:23:36 2013 +0900 Evas: adding image dump debug feature for wayland_egl backend Porting commit f10c108283d9b76708418ba172b9ff0b28a09cd6 to wayland engine. Added a feature to dump out a png image before calling SwapBuffers. To turn on the feature, use the following env vars. EVAS_GL_SWAP_BUFFER_DEBUG_DIR=dir_name sets the name of the directory that the files will be output to and enables the debug mode. EVAS_GL_SWAP_BUFFER_DEBUG_ALWAYS=1 will enable the writing of the files every frame. This in effect turns on the swap_buffer_debug variable, which can be set on or off in gdb for debugging. This will allow dumping of certain frames without having to dump out a ton of files to track down one frame. --- src/modules/evas/engines/wayland_egl/evas_engine.c | 43 ++ 1 file changed, 43 insertions(+) diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c b/src/modules/evas/engines/wayland_egl/evas_engine.c index 1db4dbd..65edcca 100644 --- a/src/modules/evas/engines/wayland_egl/evas_engine.c +++ b/src/modules/evas/engines/wayland_egl/evas_engine.c @@ -41,6 +41,7 @@ struct _Render_Engine Eina_Bool lost_back : 1; Eina_Bool end : 1; Eina_Bool evgl_initted : 1; + int frame_cnt; struct { @@ -103,6 +104,9 @@ static Eina_Bool extn_have_buffer_age = EINA_TRUE; static int safe_native = -1; static int partial_rect_union_mode = -1; +static int swap_buffer_debug_mode = -1; +static int swap_buffer_debug = 0; + /* function tables - filled in later (func and parent func) */ static Evas_Func func, pfunc; static EVGL_Interface evgl_funcs = @@ -1188,6 +1192,7 @@ static void eng_output_flush(void *data, Evas_Render_Mode render_mode) { Render_Engine *re; + static char *dname = NULL; if (!(re = (Render_Engine *)data)) return; @@ -1201,6 +1206,41 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode) evas_gl_common_context_done(re-win-gl_context); + // Save contents of the framebuffer to a file + if (swap_buffer_debug_mode == -1) + { +if ((dname = getenv(EVAS_GL_SWAP_BUFFER_DEBUG_DIR))) + { + int stat; + // Create a directory with 0775 permission + stat = mkdir(dname, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH); + if ((!stat) || errno == EEXIST) swap_buffer_debug_mode = 1; + } +else + swap_buffer_debug_mode = 0; + } + + if (swap_buffer_debug_mode == 1) + { +// Set this env var to dump files every frame +// Or set the global var in gdb to 1|0 to turn it on and off +if (getenv(EVAS_GL_SWAP_BUFFER_DEBUG_ALWAYS)) + swap_buffer_debug = 1; + +if (swap_buffer_debug) + { + char fname[100]; + int ret = 0; + sprintf(fname, %p, (void*)re-win); + + ret = evas_gl_common_buffer_dump(re-win-gl_context, + (const char*)dname, + (const char*)fname, + re-frame_cnt); + if (!ret) swap_buffer_debug_mode = 0; + } + } + if (!re-vsync) { if (re-info-vsync) eglSwapInterval(re-win-egl_disp, 1); @@ -1278,6 +1318,9 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode) evas_common_tilebuf_free_render_rects(re-rects); re-rects = NULL; } + + re-frame_cnt++; + end: evas_gl_preload_render_unlock(eng_gl_preload_make_current, re); } -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ 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/02: Evas: adding image dump debug feature for wayland_egl backend
No problem. :) I was worried that I would break something since I couldn't compile it but it was simple a simple addition so I just went ahead with it. For big ones, I'll let you know. :) cheers, Sung On Tue, Jul 23, 2013 at 2:58 PM, Christopher Michael cp.mich...@samsung.com wrote: Thank you for porting this !! :) Cheers, dh On 23/07/13 02:29, Sung W. Park - Enlightenment Git wrote: sung pushed a commit to branch master. commit 7aa516c01a620da3438de864ac0c0e5b80c93d0b Author: Sung W. Park dunamis.p...@samsung.com Date: Tue Jul 23 10:23:36 2013 +0900 Evas: adding image dump debug feature for wayland_egl backend Porting commit f10c108283d9b76708418ba172b9ff0b28a09cd6 to wayland engine. Added a feature to dump out a png image before calling SwapBuffers. To turn on the feature, use the following env vars. EVAS_GL_SWAP_BUFFER_DEBUG_DIR=dir_name sets the name of the directory that the files will be output to and enables the debug mode. EVAS_GL_SWAP_BUFFER_DEBUG_ALWAYS=1 will enable the writing of the files every frame. This in effect turns on the swap_buffer_debug variable, which can be set on or off in gdb for debugging. This will allow dumping of certain frames without having to dump out a ton of files to track down one frame. --- src/modules/evas/engines/wayland_egl/evas_engine.c | 43 ++ 1 file changed, 43 insertions(+) diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c b/src/modules/evas/engines/wayland_egl/evas_engine.c index 1db4dbd..65edcca 100644 --- a/src/modules/evas/engines/wayland_egl/evas_engine.c +++ b/src/modules/evas/engines/wayland_egl/evas_engine.c @@ -41,6 +41,7 @@ struct _Render_Engine Eina_Bool lost_back : 1; Eina_Bool end : 1; Eina_Bool evgl_initted : 1; + int frame_cnt; struct { @@ -103,6 +104,9 @@ static Eina_Bool extn_have_buffer_age = EINA_TRUE; static int safe_native = -1; static int partial_rect_union_mode = -1; +static int swap_buffer_debug_mode = -1; +static int swap_buffer_debug = 0; + /* function tables - filled in later (func and parent func) */ static Evas_Func func, pfunc; static EVGL_Interface evgl_funcs = @@ -1188,6 +1192,7 @@ static void eng_output_flush(void *data, Evas_Render_Mode render_mode) { Render_Engine *re; + static char *dname = NULL; if (!(re = (Render_Engine *)data)) return; @@ -1201,6 +1206,41 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode) evas_gl_common_context_done(re-win-gl_context); + // Save contents of the framebuffer to a file + if (swap_buffer_debug_mode == -1) + { +if ((dname = getenv(EVAS_GL_SWAP_BUFFER_DEBUG_DIR))) + { + int stat; + // Create a directory with 0775 permission + stat = mkdir(dname, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH); + if ((!stat) || errno == EEXIST) swap_buffer_debug_mode = 1; + } +else + swap_buffer_debug_mode = 0; + } + + if (swap_buffer_debug_mode == 1) + { +// Set this env var to dump files every frame +// Or set the global var in gdb to 1|0 to turn it on and off +if (getenv(EVAS_GL_SWAP_BUFFER_DEBUG_ALWAYS)) + swap_buffer_debug = 1; + +if (swap_buffer_debug) + { + char fname[100]; + int ret = 0; + sprintf(fname, %p, (void*)re-win); + + ret = evas_gl_common_buffer_dump(re-win-gl_context, + (const char*)dname, + (const char*)fname, + re-frame_cnt); + if (!ret) swap_buffer_debug_mode = 0; + } + } + if (!re-vsync) { if (re-info-vsync) eglSwapInterval(re-win-egl_disp, 1); @@ -1278,6 +1318,9 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode) evas_common_tilebuf_free_render_rects(re-rects); re-rects = NULL; } + + re-frame_cnt++; + end: evas_gl_preload_render_unlock(eng_gl_preload_make_current, re); } -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ 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/02: Evas: adding image dump debug feature for wayland_egl backend
On 23/07/13 07:17, Sung W. Park wrote: No problem. :) I was worried that I would break something since I couldn't compile it but it was simple a simple addition so I just went ahead with it. No Worries :) Ideally I would request at Least a compile check ;) (let's not pick up any bad habits from the French borker) ;) but I understand not being able to compile it. Yes, for simple additions like this don't worry too much about it. I'll be able to compile and run it for testing so any breakage would get detected promptly anyway ;) For big ones, I'll let you know. :) Not a problem :) I look forward to any help or efforts that you want to contribute :) Cheers, Chris cheers, Sung On Tue, Jul 23, 2013 at 2:58 PM, Christopher Michael cp.mich...@samsung.com wrote: Thank you for porting this !! :) Cheers, dh On 23/07/13 02:29, Sung W. Park - Enlightenment Git wrote: sung pushed a commit to branch master. commit 7aa516c01a620da3438de864ac0c0e5b80c93d0b Author: Sung W. Park dunamis.p...@samsung.com Date: Tue Jul 23 10:23:36 2013 +0900 Evas: adding image dump debug feature for wayland_egl backend Porting commit f10c108283d9b76708418ba172b9ff0b28a09cd6 to wayland engine. Added a feature to dump out a png image before calling SwapBuffers. To turn on the feature, use the following env vars. EVAS_GL_SWAP_BUFFER_DEBUG_DIR=dir_name sets the name of the directory that the files will be output to and enables the debug mode. EVAS_GL_SWAP_BUFFER_DEBUG_ALWAYS=1 will enable the writing of the files every frame. This in effect turns on the swap_buffer_debug variable, which can be set on or off in gdb for debugging. This will allow dumping of certain frames without having to dump out a ton of files to track down one frame. --- src/modules/evas/engines/wayland_egl/evas_engine.c | 43 ++ 1 file changed, 43 insertions(+) diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c b/src/modules/evas/engines/wayland_egl/evas_engine.c index 1db4dbd..65edcca 100644 --- a/src/modules/evas/engines/wayland_egl/evas_engine.c +++ b/src/modules/evas/engines/wayland_egl/evas_engine.c @@ -41,6 +41,7 @@ struct _Render_Engine Eina_Bool lost_back : 1; Eina_Bool end : 1; Eina_Bool evgl_initted : 1; + int frame_cnt; struct { @@ -103,6 +104,9 @@ static Eina_Bool extn_have_buffer_age = EINA_TRUE; static int safe_native = -1; static int partial_rect_union_mode = -1; +static int swap_buffer_debug_mode = -1; +static int swap_buffer_debug = 0; + /* function tables - filled in later (func and parent func) */ static Evas_Func func, pfunc; static EVGL_Interface evgl_funcs = @@ -1188,6 +1192,7 @@ static void eng_output_flush(void *data, Evas_Render_Mode render_mode) { Render_Engine *re; + static char *dname = NULL; if (!(re = (Render_Engine *)data)) return; @@ -1201,6 +1206,41 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode) evas_gl_common_context_done(re-win-gl_context); + // Save contents of the framebuffer to a file + if (swap_buffer_debug_mode == -1) + { +if ((dname = getenv(EVAS_GL_SWAP_BUFFER_DEBUG_DIR))) + { + int stat; + // Create a directory with 0775 permission + stat = mkdir(dname, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH); + if ((!stat) || errno == EEXIST) swap_buffer_debug_mode = 1; + } +else + swap_buffer_debug_mode = 0; + } + + if (swap_buffer_debug_mode == 1) + { +// Set this env var to dump files every frame +// Or set the global var in gdb to 1|0 to turn it on and off +if (getenv(EVAS_GL_SWAP_BUFFER_DEBUG_ALWAYS)) + swap_buffer_debug = 1; + +if (swap_buffer_debug) + { + char fname[100]; + int ret = 0; + sprintf(fname, %p, (void*)re-win); + + ret = evas_gl_common_buffer_dump(re-win-gl_context, + (const char*)dname, + (const char*)fname, + re-frame_cnt); + if (!ret) swap_buffer_debug_mode = 0; + } + } + if (!re-vsync) { if (re-info-vsync) eglSwapInterval(re-win-egl_disp, 1); @@ -1278,6 +1318,9 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode) evas_common_tilebuf_free_render_rects(re-rects); re-rects = NULL; } + + re-frame_cnt++; + end: evas_gl_preload_render_unlock(eng_gl_preload_make_current, re); } -- See everything from the browser to the database with AppDynamics Get end-to-end visibility
[E-devel] EFL Beta API
Hello, As the time comes, we are trying to move to a time based release. But as the discussion on Eo does show, it takes time to reach a consensus on some API and make it difficult to move forward on a release. So I have introduced a macro EFL_BETA_API_SUPPORT that is used to disable API that we won't support for the next release, but still want to push forward. The people that want to use those API should be advised that they will have no ABI/API stability on such API and will need to enable it manually. I have added a m4 macro that will add it to the config.h at configure time. The first API that I have just marked as beta is Eo. All program that use are now using efl_beta.m4 (elementary, expedite, clouseau). The goal is offcourse to have the least amount of those API in beta, but that is I think the only sane way to move forward. Regards, -- Cedric BAIL -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] EFL Beta API
I don't understand why we can't just remove all those from the public headers. If we're still rewriting them so much that they need to be marked as beta, they should not be released at all imo. On Tue, Jul 23, 2013 at 8:46 AM, Cedric BAIL cedric.b...@free.fr wrote: Hello, As the time comes, we are trying to move to a time based release. But as the discussion on Eo does show, it takes time to reach a consensus on some API and make it difficult to move forward on a release. So I have introduced a macro EFL_BETA_API_SUPPORT that is used to disable API that we won't support for the next release, but still want to push forward. The people that want to use those API should be advised that they will have no ABI/API stability on such API and will need to enable it manually. I have added a m4 macro that will add it to the config.h at configure time. The first API that I have just marked as beta is Eo. All program that use are now using efl_beta.m4 (elementary, expedite, clouseau). The goal is offcourse to have the least amount of those API in beta, but that is I think the only sane way to move forward. Regards, -- Cedric BAIL -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] EFL Beta API
On Tue, Jul 23, 2013 at 4:56 PM, Michael Blumenkrantz michael.blumenkra...@gmail.com wrote: I don't understand why we can't just remove all those from the public headers. If we're still rewriting them so much that they need to be marked as beta, they should not be released at all imo. Because we use it. That's the point. If you don't have the ability to mark some API as beta, you can't use some API and if you don't use them you don't know how good they are at the end. It also reduce the review of such API. So in the end you need a way to mark those API beta. On Tue, Jul 23, 2013 at 8:46 AM, Cedric BAIL cedric.b...@free.fr wrote: Hello, As the time comes, we are trying to move to a time based release. But as the discussion on Eo does show, it takes time to reach a consensus on some API and make it difficult to move forward on a release. So I have introduced a macro EFL_BETA_API_SUPPORT that is used to disable API that we won't support for the next release, but still want to push forward. The people that want to use those API should be advised that they will have no ABI/API stability on such API and will need to enable it manually. I have added a m4 macro that will add it to the config.h at configure time. The first API that I have just marked as beta is Eo. All program that use are now using efl_beta.m4 (elementary, expedite, clouseau). The goal is offcourse to have the least amount of those API in beta, but that is I think the only sane way to move forward. Regards, -- Cedric BAIL -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Cedric BAIL -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] EFL Beta API
sure, but it sounds more like pre-alpha than beta at this point considering the amount of rewrite occurring. On Tue, Jul 23, 2013 at 9:01 AM, Cedric BAIL cedric.b...@free.fr wrote: On Tue, Jul 23, 2013 at 4:56 PM, Michael Blumenkrantz michael.blumenkra...@gmail.com wrote: I don't understand why we can't just remove all those from the public headers. If we're still rewriting them so much that they need to be marked as beta, they should not be released at all imo. Because we use it. That's the point. If you don't have the ability to mark some API as beta, you can't use some API and if you don't use them you don't know how good they are at the end. It also reduce the review of such API. So in the end you need a way to mark those API beta. On Tue, Jul 23, 2013 at 8:46 AM, Cedric BAIL cedric.b...@free.fr wrote: Hello, As the time comes, we are trying to move to a time based release. But as the discussion on Eo does show, it takes time to reach a consensus on some API and make it difficult to move forward on a release. So I have introduced a macro EFL_BETA_API_SUPPORT that is used to disable API that we won't support for the next release, but still want to push forward. The people that want to use those API should be advised that they will have no ABI/API stability on such API and will need to enable it manually. I have added a m4 macro that will add it to the config.h at configure time. The first API that I have just marked as beta is Eo. All program that use are now using efl_beta.m4 (elementary, expedite, clouseau). The goal is offcourse to have the least amount of those API in beta, but that is I think the only sane way to move forward. Regards, -- Cedric BAIL -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Cedric BAIL -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] EFL Beta API
On Tue, Jul 23, 2013 at 5:04 PM, Michael Blumenkrantz michael.blumenkra...@gmail.com wrote: sure, but it sounds more like pre-alpha than beta at this point considering the amount of rewrite occurring. There is still no agreement about if we are going to change any of the existing API or not. It is still a discussion. And the change is going to impact mostly EFL internal than an application using EFL. On Tue, Jul 23, 2013 at 9:01 AM, Cedric BAIL cedric.b...@free.fr wrote: On Tue, Jul 23, 2013 at 4:56 PM, Michael Blumenkrantz michael.blumenkra...@gmail.com wrote: I don't understand why we can't just remove all those from the public headers. If we're still rewriting them so much that they need to be marked as beta, they should not be released at all imo. Because we use it. That's the point. If you don't have the ability to mark some API as beta, you can't use some API and if you don't use them you don't know how good they are at the end. It also reduce the review of such API. So in the end you need a way to mark those API beta. On Tue, Jul 23, 2013 at 8:46 AM, Cedric BAIL cedric.b...@free.fr wrote: Hello, As the time comes, we are trying to move to a time based release. But as the discussion on Eo does show, it takes time to reach a consensus on some API and make it difficult to move forward on a release. So I have introduced a macro EFL_BETA_API_SUPPORT that is used to disable API that we won't support for the next release, but still want to push forward. The people that want to use those API should be advised that they will have no ABI/API stability on such API and will need to enable it manually. I have added a m4 macro that will add it to the config.h at configure time. The first API that I have just marked as beta is Eo. All program that use are now using efl_beta.m4 (elementary, expedite, clouseau). The goal is offcourse to have the least amount of those API in beta, but that is I think the only sane way to move forward. Regards, -- Cedric BAIL -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Cedric BAIL -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Cedric BAIL -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list
Re: [E-devel] enventor (an edc editor prototype)
On 22/07/13 18:42, ChunEon Park wrote: http://www.youtube.com/watch?v=cOdgBBV4J3sfeature=youtu.be Hm.. syntax highlighting - nice. Looks like you have a nice syntax highlighting, line numbering and etc. going on there, what did you use? Really nice, and I see the source as in your private repo, cool. :) -- Tom. -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: tasn trunk/elementary/src/lib
Hey, From the setlocale man page: If locale is NULL, the current locale is only queried, not modified. I am only querying it there, not modifying it. It's up to the application to set the locale to whatever it wants, for example by calling setlocale with like you've suggested. This is *correct* don't change it. Look at ecrire for example, Ecrire does it right and works correctly. -- Tom. On 23/07/13 05:08, Daniel Juyung Seo wrote: Dear Tom, what does if the app using elm is translatable. mean? With setlocale LC_MESSAGES to NULL, running applications with environment variable with LANG doesn't translate the texts. const char *msg_locale = setlocale(LC_MESSAGES, NULL); I tried with instead of NULL and it worked. const char *msg_locale = setlocale(LC_MESSAGES, ; Can you check this? Thanks. Daniel Juyung Seo (SeoZ) On Sun, Sep 18, 2011 at 4:53 PM, Enlightenment SVN no-re...@enlightenment.org wrote: Log: Elm gettext: Only translate if the app using elm is translatable. It assumes gettext is initialized before the call to elm_init. Author: tasn Date: 2011-09-18 00:53:41 -0700 (Sun, 18 Sep 2011) New Revision: 63452 Trac: http://trac.enlightenment.org/e/changeset/63452 Modified: trunk/elementary/src/lib/elm_config.c trunk/elementary/src/lib/elm_priv.h Modified: trunk/elementary/src/lib/elm_config.c === --- trunk/elementary/src/lib/elm_config.c 2011-09-17 17:15:32 UTC (rev 63451) +++ trunk/elementary/src/lib/elm_config.c 2011-09-18 07:53:41 UTC (rev 63452) @@ -1658,12 +1658,33 @@ _elm_rescale(); } +static void +_translation_init() +{ +#ifdef ENABLE_NLS + const char *cur_dom = textdomain(NULL); + const char *trans_comment = gettext(); + const char *msg_locale = setlocale(LC_MESSAGES, NULL); + + /* Same concept as what glib does: +* We shouldn't translate if there are no translations for the +* application in the current locale + domain. (Unless locale is +* en_/C where translating only parts of the interface make some +* sense). +*/ + _elm_config-translate = !(strcmp (cur_dom, messages) + !*trans_comment strncmp (msg_locale, en_, 3) + strcmp (msg_locale, C)); +#endif +} + void _elm_config_init(void) { _desc_init(); _profile_fetch_from_conf(); _config_load(); + _translation_init(); _env_get(); _config_apply(); _elm_config_font_overlay_apply(); Modified: trunk/elementary/src/lib/elm_priv.h === --- trunk/elementary/src/lib/elm_priv.h 2011-09-17 17:15:32 UTC (rev 63451) +++ trunk/elementary/src/lib/elm_priv.h 2011-09-18 07:53:41 UTC (rev 63452) @@ -28,7 +28,7 @@ #ifdef ENABLE_NLS # include libintl.h -# define E_(string) dgettext(PACKAGE, string) +# define E_(string) _elm_dgettext(string) #else # define bindtextdomain(domain,dir) # define E_(string) (string) @@ -148,6 +148,7 @@ /* Not part of the EET file */ Eina_Bool is_mirrored : 1; + Eina_Bool translate : 1; }; struct _Elm_Module @@ -247,6 +248,20 @@ extern Eina_List *_elm_win_list; extern int _elm_win_deferred_free; +/* Our gettext wrapper, used to disable translation of elm if the app + * is not translated. */ +static inline const char * +_elm_dgettext(const char *string) +{ + if (EINA_UNLIKELY(_elm_config-translate == EINA_FALSE)) + { +return string; + } + + return dgettext(PACKAGE, string); +} + + /* Used by the paste handler */ void _elm_entry_entry_paste(Evas_Object *obj, const char *entry); -- BlackBerryreg; DevCon Americas, Oct. 18-20, San Francisco, CA http://p.sf.net/sfu/rim-devcon-copy2 ___ enlightenment-svn mailing list enlightenment-...@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-svn -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in
Re: [E-devel] EFL Beta API
On 23/07/13 08:46, Cedric BAIL wrote: Hello, As the time comes, we are trying to move to a time based release. But as the discussion on Eo does show, it takes time to reach a consensus on some API and make it difficult to move forward on a release. So I have introduced a macro EFL_BETA_API_SUPPORT that is used to disable API that we won't support for the next release, but still want to push forward. The people that want to use those API should be advised that they will have no ABI/API stability on such API and will need to enable it manually. I have added a m4 macro that will add it to the config.h at configure time. The first API that I have just marked as beta is Eo. All program that use are now using efl_beta.m4 (elementary, expedite, clouseau). The goal is offcourse to have the least amount of those API in beta, but that is I think the only sane way to move forward. Great, thanks. :) -- Tom. -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] enventor (an edc editor prototype)
just an entry. :-) still have many stuff to do with entry before first release. 1. auto indentation. 2. undo/redo. 3. fix the entry object maximum size problem. -Regards, Hermet- -Original Message- From: Tom Hacohentom.haco...@samsung.com To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: ChunEon Parkher...@naver.com; enlightenment-us...@lists.sourceforge.net; Sent: 2013-07-23 (화) 18:32:18 Subject: Re: [E-devel] enventor (an edc editor prototype) On 22/07/13 18:42, ChunEon Park wrote: http://www.youtube.com/watch?v=cOdgBBV4J3sfeature=youtu.be Hm.. syntax highlighting - nice. Looks like you have a nice syntax highlighting, line numbering and etc. going on there, what did you use? Really nice, and I see the source as in your private repo, cool. :) -- Tom. -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] enventor (an edc editor prototype)
On 23/07/13 11:43, ChunEon Park wrote: just an entry. :-) still have many stuff to do with entry before first release. 1. auto indentation. 2. undo/redo. 3. fix the entry object maximum size problem. Cool. :) -- Tom. -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] enventor (an edc editor prototype)
On Tue, 23 Jul 2013 11:07:30 +0900 Sung W. Park sung...@gmail.com said: Looks really nice hermet! :) what's wrong with 'enventor'??? it totally makes sense you know, like all the other names. i'm surprised that terminology wasn't name eterminology ;-) espion, evas, edje, eet, ecore, elementary, efl, eina, enna, entrance, eterm, exactness, enlightenment, entice, ephoto, elev8, ecrire, enjoy, emotion, embryo, efreet, eio, eldbus, ephysics, expedite, ... just to name a few... too many e things with too little idea of which does what. i chose enlightenment as a word.. because it invoked an idea. a feeling. it wasn't an excuse to just call everything e*. this is like the wm naming i was trying to break from. everything was twm, fvm, ctwm, olvwm, mwm etc... because people had no imagination to come up with something more emotive. inventor is great name on its own. its simple and clear. no need to hack at it by replacing the i with an e and create yet more stuff starting with e that people find it hard to pick apart. break away! choose words that have a meaning. that bring up images/feelings that convey a message. inventor is already great! :) cheers, Sung On Tue, Jul 23, 2013 at 10:52 AM, Carsten Haitzler ras...@rasterman.comwrote: On Tue, 23 Jul 2013 02:42:10 +0900 (KST) ChunEon Park her...@naver.com said: http://www.youtube.com/watch?v=cOdgBBV4J3sfeature=youtu.be just call it inventor. enough of the e stuff. it sounds stupid to mangle words to stuff an e on the front. we have so much of it that people already can't keep track of what is what. -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [PATCH] systemd: change from simple e18 service to target
Hello everyone, If this lands, https://phab.enlightenment.org/w/e18_with_systemd_user_session/ should be updated. -- Leif Am Samstag, 20. Juli 2013 um 16:50 schrieb Thomas Gstädtner: This has a few advantages over the current approach: - only depends on user-session-units, not the flawed systemd-user-units - allows isolating the target to switch between e.g. e17 and e18 at runtime - works much more reliably for me Important: please don't commit without review by Cedric! --- data/units/Makefile.am (http://Makefile.am) | 6 +- data/units/e18.service | 9 +++-- data/units/e18.target | 6 ++ 3 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 data/units/e18.target -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net (mailto:enlightenment-devel@lists.sourceforge.net) https://lists.sourceforge.net/lists/listinfo/enlightenment-devel Anhänge: - 0001-systemd-change-from-simple-e18-service-to-target.patch -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Eo: potential improvements
On 12/07/13 07:42, Carsten Haitzler (The Rasterman) wrote: On Mon, 08 Jul 2013 18:00:15 +0100 Tom Hacohen tom.haco...@samsung.com said: ok. looked at eo2test.c eo2_do(obj, a = inst_func(eo_o, 32); inst_func(eo_o, 10); b = inst_func(eo_o, 50); ); first... passing in eo_o... should probably go away. ie Gustavo suggested (but he's too lazy to write an email about it and I need reminders so I'm sending it) that we use a stack to keep the eo pointer. This means we won't expose the eo pointer anymore (which doesn't matter, but whatever), we will be able to have function signatures the way we want them, e.g: evas_object_move(x, y), instead of passing anything and it should be cool in general. I'm happy, and will incorporate that unless objected. As long as we pre-allocate the stack it shouldn't come at a big cost. What do you guys think? -- Tom. -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Eo: potential improvements
On Tue, Jul 23, 2013 at 11:47 AM, Tom Hacohen tom.haco...@samsung.com wrote: On 12/07/13 07:42, Carsten Haitzler (The Rasterman) wrote: On Mon, 08 Jul 2013 18:00:15 +0100 Tom Hacohen tom.haco...@samsung.com said: ok. looked at eo2test.c eo2_do(obj, a = inst_func(eo_o, 32); inst_func(eo_o, 10); b = inst_func(eo_o, 50); ); first... passing in eo_o... should probably go away. ie Gustavo suggested (but he's too lazy to write an email about it and I need reminders so I'm sending it) that we use a stack to keep the eo pointer. This means we won't expose the eo pointer anymore (which doesn't matter, but whatever), we will be able to have function signatures the way we want them, e.g: evas_object_move(x, y), instead of passing anything and it should be cool in general. I'm happy, and will incorporate that unless objected. As long as we pre-allocate the stack it shouldn't come at a big cost. What do you guys think? just a reminder this stack should be per thread, in a thread-local-storage region. for single calls it should be worse as we set-call-unset, but for multiple calls that may pay off. The readability is much better this way, at least it would be similar to previous code where we got the private data. the con I could see is we loose validation in the caller, you'd need to validate in the function... Example: eo_do(evas_obj, ecore_timer_interval_set(10.0)); this would still call directly ecore_timer_interval_set(), which internally would get the eo_o, which should be validated and return if not right. All in all that would be the case, as ecore_timer_interval_set() would need to get the actual method (virtual) to call. I did not read the whole thread, so that may be addressed in another way. From the above example this could happen as well, inst_func() also has a potential of not being a method of obj. -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: barbi...@gmail.com Skype: gsbarbieri Mobile: +55 (19) 9225-2202 -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Eo: potential improvements
On 23/07/13 02:51, Carsten Haitzler (The Rasterman) wrote: On Mon, 22 Jul 2013 17:30:17 +0100 Tom Hacohen tom.haco...@samsung.com said: On 21/07/13 14:18, Jérémy Zurcher wrote: Hello from my holiday in France (for the frenchies who know lofofora ;) On Friday 12 July 2013 15:42, Carsten Haitzler wrote : On Mon, 08 Jul 2013 18:00:15 +0100 Tom Hacohen tom.haco...@samsung.com said: ok. looked at eo2test.c eo2_do(obj, a = inst_func(eo_o, 32); inst_func(eo_o, 10); b = inst_func(eo_o, 50); ); first... passing in eo_o... should probably go away. ie eo2_do(obj, a = inst_func(32); inst_func(10); b = inst_func(50); ); the declaration is EAPI int inst_func_set(eo2_a, int a, int b); expanded to EAPI int inst_func_set( _Eo *obj, Eo *objid, int a, int b); what I first proposed was using a second macro eo2_do(obj, sum = eo_call(inst_func_set, 32, 12); a = eo_call(inst_func_get_a); ); would it be better ? (Tom, I don't love it, that's just handy ;) I don't like it because it doesn't look like c code any more. This means that what Carsten is asking for can't be done. of course it looks like c. it just is not c that you are used to seeing. if we make it look like c (that is the plain simple funca(x); funcb(x, y); funcc (x, y, z);), then we can't really do eo at all. you're SOL. we NEED to be able to. 1. begin a block of operations by dereferencing the objid to a ptr AND ref() the obj. 2. allow N operations to work on the currently bound context object ptr after lookup/checks 3. when all of #2 are done, unref the obj again. we need this to compensate for objid indirection. amortizing the cost is part of the premise of doing eo. objid's are an absolute must for many reasons already explained. you know them as well as i do. You got me wrong. I was talking about the eo_call(inst_func_get_a) convention which I don't like. Anyhow, Gustavo suggested a nice idea that I've sent in another email on this thread, take a look, I think it can do everything we need. so as i see it.. your choice is - forget eo entirely, or live with the fact that it introduces a usage of c that looks odd to you. you'll get used to it. the varargs solution means the compiler disallows arbitrary code in the block and makes it much safer - you can't shoot yourself in the foot as easily (don't think you, or me - think someone new to efl who sees how to do this and then starts thinking they can do if (method(x)) return; etc. etc. - they wont read docs telling them they can't do this. it will be an obvious next step to them). if you do it the eo2 way you need to somehow try to alert the user to NOT do this. if you use nested do{}while(0);s then you can use ONLY break (or continue actually), but not return. i can't think of a way of erroring out or warning a user that return is disallowed within this block. Told you, I have a solution for that. We can just pass them as parameters to a function we are calling that does nothing and is just static inline. So the func declaration will be: static inline void bla(void *a, ...) { } and in the macro we'll do: code do { __VA_ARGS__ // (like we do now) } while (0); if (0) bla(__VA_ARGS__) // this will do the checking for us. /code we can't just do the bla thing because parameter evaluation order is not defined in the standard. secondly, having a = ; with ; too.. is going to start encouraging people to do really bad things like: eo2_do(obj, if (inst_func(32) != 22) return; inst_func(10); b = inst_func(50); ); and all sorts of hell is going to break loose here. i don't believe that as a result of returns we can now sensibly handle method errors from an eo_do() batch. if we are using returns for errors we SHOULD have something like: well the rule is really simple to document and explain: use break not return in e eo2_do() construct It's better to have enforcement by the compiler. i agree. in that respect varargs are better. the macros do typechecking and arg count checks so we are essentially ok unless you KNOW its varargs underneath and bypass the method macros. this requires much more understanding and reading of docs/headers so i'd guess this is ok. Eo_Err err; err = eo_do(obj, a = inst_func(32); inst_func(10); b = inst_func(50); ); if (err.error == inst_func1_id) return; // inst_func1 method id is what failed we have no more function id in the latest prototype, but this disallow EAPI static inline func(); I'm waiting for comments from Tom and others about this. if (err.failedop == 2) return; // in a batch, operations are counted, 0, 1, 2 // so op id 2 (last one) failed here if (err.type == EO_ERR_INVALID_VALUE) return; // can
Re: [E-devel] Eo: potential improvements
On Tuesday 23 July 2013 15:47, Tom Hacohen wrote : On 12/07/13 07:42, Carsten Haitzler (The Rasterman) wrote: On Mon, 08 Jul 2013 18:00:15 +0100 Tom Hacohen tom.haco...@samsung.com said: ok. looked at eo2test.c eo2_do(obj, a = inst_func(eo_o, 32); inst_func(eo_o, 10); b = inst_func(eo_o, 50); ); first... passing in eo_o... should probably go away. ie Gustavo suggested (but he's too lazy to write an email about it and I need reminders so I'm sending it) that we use a stack to keep the eo pointer. This means we won't expose the eo pointer anymore (which doesn't matter, but whatever), we will be able to have function signatures the way we want them, e.g: evas_object_move(x, y), instead of passing anything and it should be cool in general. I'm happy, and will incorporate that unless objected. As long as we pre-allocate the stack it shouldn't come at a big cost. What do you guys think? I think that's perfect, this is where I wanted to go next with my sandbox branch - remove eo2_a from EAPI signature (the Eo2_Call_Ctx) - transform the static Eo2_Call_Data into a per thread stack as you talked about eo2_do calls inside each others and I saw them in eo_base_class I think we should incorporate 'class_data' ptr with obj ptr in the stack frame, computed as needed btw I think that naming the object private data 'class_data' is very wrong in a OO way, that's object variables not class variables. -- Tom. --- Hell'O from Yverdoom Jérémy (jeyzu) -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Eo: potential improvements
just to clarify a few points: - I think the less macro we have in an eo class declaration the best, actually we have nothing but that extra first parameter called eo2_o, wich is either an obj_ptr (devs/tasn/eo2) or a call_ctx (devs/jeyzu/eo2) this should go away if we use a stack per thread in eo private code, so we end up with a clean EAPI float times(float f, float t); - since day 1 break is supported in eo2_do: #define eo2_do(obj_id, ...) do { obj_ptr_or_ctx = eo2_do_start(obj_id); if(!obj_ptr_or_ctx) break; do { __VA_ARGS__ ; } while (0); eo2_do_end(obj_ptr_or_ctx); } while (0) - EAPI static inline func() and overriding worked untill I used eapi symbol address instead of OPID it's a 2 hops game: EAPI func() { f = eo2_get_real_func_ptr(OPID, OBJ); return f(OBJ, OBJ_DATA, _args_) }; is it ok for everyone to forget about EAPI static inline ? On Monday 22 July 2013 14:45, Carsten Haitzler wrote : On Mon, 22 Jul 2013 10:24:03 +0900 Cedric BAIL cedric.b...@free.fr said: On Mon, Jul 22, 2013 at 8:55 AM, Carsten Haitzler ras...@rasterman.com wrote: On Sun, 21 Jul 2013 15:18:02 +0200 Jérémy Zurcher jer...@asynk.ch said: Hello from my holiday in France (for the frenchies who know lofofora ;) Enjoy ! On Friday 12 July 2013 15:42, Carsten Haitzler wrote : On Mon, 08 Jul 2013 18:00:15 +0100 Tom Hacohen tom.haco...@samsung.com said: ok. looked at eo2test.c eo2_do(obj, a = inst_func(eo_o, 32); inst_func(eo_o, 10); b = inst_func(eo_o, 50); ); first... passing in eo_o... should probably go away. ie eo2_do(obj, a = inst_func(32); inst_func(10); b = inst_func(50); ); the declaration is EAPI int inst_func_set(eo2_a, int a, int b); expanded to EAPI int inst_func_set( _Eo *obj, Eo *objid, int a, int b); what I first proposed was using a second macro eo2_do(obj, sum = eo_call(inst_func_set, 32, 12); a = eo_call(inst_func_get_a); ); would it be better ? (Tom, I don't love it, that's just handy ;) i dont see why? make inst_func() a macro that defines to inst_func_real (__cur_obj, ...) eo2_do() defines a local var for __cur_obj when obj is looked-up (so lookup happens only once per do block). secondly, having a = ; with ; too.. is going to start encouraging people to do really bad things like: eo2_do(obj, if (inst_func(32) != 22) return; inst_func(10); b = inst_func(50); ); and all sorts of hell is going to break loose here. i don't believe that as a result of returns we can now sensibly handle method errors from an eo_do() batch. if we are using returns for errors we SHOULD have something like: well the rule is really simple to document and explain: use break not return in e eo2_do() construct next problem. if we ref() on do start and unref() on end of do... this just broke it. any form of breaking out will break stuff badly (break, return, continue). Not break. It is easy to make it work without using macro. We just embedded it into a do { } while (0); loop and the break will work just fine. The problem will be that the semantic of continue will not be related to a loop where eo_do is running, but to eo_do code itself. I would just strongly advise in the documentation to not use those trick. we need 2 do {} while's then... :) Eo_Err err; err = eo_do(obj, a = inst_func(32); inst_func(10); b = inst_func(50); ); if (err.error == inst_func1_id) return; // inst_func1 method id is what failed we have no more function id in the latest prototype, but this disallow EAPI static inline func(); I'm waiting for comments from Tom and others about this. static inline is incompatible with things like method overriding at runtime anyway :) but still... imho the now we have returns we can get errors is a bogus claim, because of the previous point... you can get.. but you cant DO anything useful (return, break, continue)... UNLESS you provide a macro that cleanly aborts the do block (example - #define eo2_break() _eo_unref(__cur_obj); break). i was just showing how errors could be done very simply with the current eo api by returning an eo_err struct, rather than a single bool. if (err.failedop == 2) return; // in a batch, operations are counted, 0, 1, 2 // so op id 2 (last one) failed here if (err.type == EO_ERR_INVALID_VALUE) return; // can put err inside a type field. note that this is using an error return as a struct, not a basic type (int, pointer, char, etc.), and this is perfectly valid and correct
Re: [E-devel] [PATCH] systemd: change from simple e18 service to target
On Tue, Jul 23, 2013 at 2:31 PM, Leif Middelschulte leif.middelschu...@gmail.com wrote: Hello everyone, If this lands, https://phab.enlightenment.org/w/e18_with_systemd_user_session/ should be updated. -- Leif I will do that once it is in. I talked to Cedric already and am waiting until he gets his systemd machine running again and tests it. In the meantime, if you want to test it: There isn't actually much changing, just ignore the systemd-user-units part of the article and everything will be fine (in fact, the current howto isn't enough to use it like described anyway, it is much more likely that you get the new stuff working with it than the existing one :). Other than that, simply use the documentation of sofar's user-session-units and replace e17 by e18, it is fully compatible to this and should work on any machine with systemd (not just arch). Sidenote: There still is a bug with systemd's watchdog in E, so the watchdog doesn't actually work, but that's not directly related to this and happens with both approaches. I will have a look at this, soon. Am Samstag, 20. Juli 2013 um 16:50 schrieb Thomas Gstädtner: This has a few advantages over the current approach: - only depends on user-session-units, not the flawed systemd-user-units - allows isolating the target to switch between e.g. e17 and e18 at runtime - works much more reliably for me Important: please don't commit without review by Cedric! --- data/units/Makefile.am (http://Makefile.am) | 6 +- data/units/e18.service | 9 +++-- data/units/e18.target | 6 ++ 3 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 data/units/e18.target -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net (mailto:enlightenment-devel@lists.sourceforge.net) https://lists.sourceforge.net/lists/listinfo/enlightenment-devel Anhänge: - 0001-systemd-change-from-simple-e18-service-to-target.patch -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] enventor (an edc editor prototype)
On Tue, Jul 23, 2013 at 7:32 AM, Carsten Haitzler ras...@rasterman.com wrote: On Tue, 23 Jul 2013 11:07:30 +0900 Sung W. Park sung...@gmail.com said: Looks really nice hermet! :) what's wrong with 'enventor'??? it totally makes sense you know, like all the other names. i'm surprised that terminology wasn't name eterminology ;-) espion, evas, edje, eet, ecore, elementary, efl, eina, enna, entrance, eterm, exactness, enlightenment, entice, ephoto, elev8, ecrire, enjoy, emotion, embryo, efreet, eio, eldbus, ephysics, expedite, ... just to name a few... too many e things with too little idea of which does what. i chose enlightenment as a word.. because it invoked an idea. a feeling. it wasn't an excuse to just call everything e*. this is like the wm naming i was trying to break from. everything was twm, fvm, ctwm, olvwm, mwm etc... because people had no imagination to come up with something more emotive. inventor is great name on its own. its simple and clear. no need to hack at it by replacing the i with an e and create yet more stuff starting with e that people find it hard to pick apart. break away! choose words that have a meaning. that bring up images/feelings that convey a message. inventor is already great! :) However, a name should be somewhat unique I think. Call it inventor and nobody will be able to google it. The next problem here is, that calling it inventor is highly likely a trademark problem, because there is a commercial, widely used software called Inventor (it's a CAD software, but that's close enough to be in conflict). Anyway, I like Enventor - it's very clearly derived from inventor and thus just as clear, but it is also unique. cheers, Sung On Tue, Jul 23, 2013 at 10:52 AM, Carsten Haitzler ras...@rasterman.comwrote: On Tue, 23 Jul 2013 02:42:10 +0900 (KST) ChunEon Park her...@naver.com said: http://www.youtube.com/watch?v=cOdgBBV4J3sfeature=youtu.be just call it inventor. enough of the e stuff. it sounds stupid to mangle words to stuff an e on the front. we have so much of it that people already can't keep track of what is what. -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] enventor (an edc editor prototype)
Inventor is simple and intutive word but doesn't impact on people (at least on me.) Enventor sounds something different and sounds as if it's a special one. I like Enventor than Inventor. -Regards, Hermet- -Original Message- From: thomasgtho...@gstaedtner.net To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: Sent: 2013-07-24 (수) 01:48:40 Subject: Re: [E-devel] enventor (an edc editor prototype) On Tue, Jul 23, 2013 at 7:32 AM, Carsten Haitzler raster@rasterman.com wrote: On Tue, 23 Jul 2013 11:07:30 +0900 Sung W. Park sungwoo@gmail.com said: Looks really nice hermet! :) what's wrong with 'enventor'??? it totally makes sense you know, like all the other names. i'm surprised that terminology wasn't name eterminology ;-) espion, evas, edje, eet, ecore, elementary, efl, eina, enna, entrance, eterm, exactness, enlightenment, entice, ephoto, elev8, ecrire, enjoy, emotion, embryo, efreet, eio, eldbus, ephysics, expedite, ... just to name a few... too many e things with too little idea of which does what. i chose enlightenment as a word.. because it invoked an idea. a feeling. it wasn't an excuse to just call everything e*. this is like the wm naming i was trying to break from. everything was twm, fvm, ctwm, olvwm, mwm etc... because people had no imagination to come up with something more emotive. inventor is great name on its own. its simple and clear. no need to hack at it by replacing the i with an e and create yet more stuff starting with e that people find it hard to pick apart. break away! choose words that have a meaning. that bring up images/feelings that convey a message. inventor is already great! :) However, a name should be somewhat unique I think. Call it inventor and nobody will be able to google it. The next problem here is, that calling it inventor is highly likely a trademark problem, because there is a commercial, widely used software called Inventor (it's a CAD software, but that's close enough to be in conflict). Anyway, I like Enventor - it's very clearly derived from inventor and thus just as clear, but it is also unique. cheers, Sung On Tue, Jul 23, 2013 at 10:52 AM, Carsten Haitzler raster@rasterman.comwrote: On Tue, 23 Jul 2013 02:42:10 +0900 (KST) ChunEon Park hermet@naver.com said: http://www.youtube.com/watch?v=cOdgBBV4J3sfeature=youtu.be just call it inventor. enough of the e stuff. it sounds stupid to mangle words to stuff an e on the front. we have so much of it that people already can't keep track of what is what. -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of
Re: [E-devel] Eo: potential improvements
On Tue, 23 Jul 2013 18:22:02 +0200 Jérémy Zurcher jer...@asynk.ch said: just to clarify a few points: - I think the less macro we have in an eo class declaration the best, actually we have nothing but that extra first parameter called eo2_o, wich is either an obj_ptr (devs/tasn/eo2) or a call_ctx (devs/jeyzu/eo2) this should go away if we use a stack per thread in eo private code, so we end up with a clean EAPI float times(float f, float t); - since day 1 break is supported in eo2_do: #define eo2_do(obj_id, ...) do { obj_ptr_or_ctx = eo2_do_start(obj_id); if(!obj_ptr_or_ctx) break; do { __VA_ARGS__ ; } while (0); eo2_do_end(obj_ptr_or_ctx); } while (0) i'm worried about people doing return there. seriously - objid came in becau se of experience that people using efl are in general inexperienced programmers who don't take the time to do things right. they do things quickly and take shortcuts, and they ignore warnings. they'd rather patch out abort()s in efl code forcing them to fix their bugs, than fix their bugs. i am fearful that they will stuff in returns quite happily and think it mostly works most of the time... and then find subtle issues and waste our time finding them. how do we protect/stop returns (or goto's for that matter) within the while block. i looked for some pragmas - can't find any to do this. this would be a really useful compiler feature though (to maybe disable some constructs for a sequence of code). - EAPI static inline func() and overriding worked untill I used eapi symbol address instead of OPID it's a 2 hops game: EAPI func() { f = eo2_get_real_func_ptr(OPID, OBJ); return f(OBJ, OBJ_DATA, _args_) }; is it ok for everyone to forget about EAPI static inline ? as long as the method the programmer sees is method(p1, p2); NOT method(obj, p1, p2); :) (ie its wrapped in a macro) On Monday 22 July 2013 14:45, Carsten Haitzler wrote : On Mon, 22 Jul 2013 10:24:03 +0900 Cedric BAIL cedric.b...@free.fr said: On Mon, Jul 22, 2013 at 8:55 AM, Carsten Haitzler ras...@rasterman.com wrote: On Sun, 21 Jul 2013 15:18:02 +0200 Jérémy Zurcher jer...@asynk.ch said: Hello from my holiday in France (for the frenchies who know lofofora ;) Enjoy ! On Friday 12 July 2013 15:42, Carsten Haitzler wrote : On Mon, 08 Jul 2013 18:00:15 +0100 Tom Hacohen tom.haco...@samsung.com said: ok. looked at eo2test.c eo2_do(obj, a = inst_func(eo_o, 32); inst_func(eo_o, 10); b = inst_func(eo_o, 50); ); first... passing in eo_o... should probably go away. ie eo2_do(obj, a = inst_func(32); inst_func(10); b = inst_func(50); ); the declaration is EAPI int inst_func_set(eo2_a, int a, int b); expanded to EAPI int inst_func_set( _Eo *obj, Eo *objid, int a, int b); what I first proposed was using a second macro eo2_do(obj, sum = eo_call(inst_func_set, 32, 12); a = eo_call(inst_func_get_a); ); would it be better ? (Tom, I don't love it, that's just handy ;) i dont see why? make inst_func() a macro that defines to inst_func_real (__cur_obj, ...) eo2_do() defines a local var for __cur_obj when obj is looked-up (so lookup happens only once per do block). secondly, having a = ; with ; too.. is going to start encouraging people to do really bad things like: eo2_do(obj, if (inst_func(32) != 22) return; inst_func(10); b = inst_func(50); ); and all sorts of hell is going to break loose here. i don't believe that as a result of returns we can now sensibly handle method errors from an eo_do() batch. if we are using returns for errors we SHOULD have something like: well the rule is really simple to document and explain: use break not return in e eo2_do() construct next problem. if we ref() on do start and unref() on end of do... this just broke it. any form of breaking out will break stuff badly (break, return, continue). Not break. It is easy to make it work without using macro. We just embedded it into a do { } while (0); loop and the break will work just fine. The problem will be that the semantic of continue will not be related to a loop where eo_do is running, but to eo_do code itself. I would just strongly advise in the documentation to not use those trick. we need 2 do {} while's then... :) Eo_Err err; err = eo_do(obj, a = inst_func(32); inst_func(10); b = inst_func(50); ); if (err.error == inst_func1_id) return; // inst_func1 method id is what failed we have no
[E-devel] Fwd: Re: [EGIT] [core/elementary] master 01/01: elementary/widget - use eina_inlist in transate data to improve memory access / allocations.
I reviewed the code right before and found that was incorrect. Fixed. commit 9560669f925cfd875c80cc212b32c6d1499d0e78 Thanks you for catching it. :) -Regards, Hermet- -Original Message- From: daniel.za...@samsung.comdaniel.zaoui@samsung.com To: hermet@hermet.pe.kr; Cc: Sent: 2013-07-23 (화) 00:12:23 Subject: Fwd: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - use eina_inlist in transate data to improve memory access / allocations. FYI Original Message Subject:Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - use eina_inlist in transate data to improve memory access / allocations. Date: Mon, 22 Jul 2013 17:30:20 +0300 From: daniel.za...@samsung.com daniel.zaoui@samsung.com Reply-To:Enlightenment developer list enlightenment-devel@lists.sourceforge.net To: enlightenment-devel@lists.sourceforge.net CC: ChunEon Park - Enlightenment Git no-reply@enlightenment.org Hi Hermet,I have an issue with that commit. In Tizen, I am almost sure it sigsegvs because of the change from list to inlist. In _translate_string_data_get, ts = NULL is done before the it-next of the loop. I say I am almost sure because gdb gives me a ts not NULL and sigsegvs on the line before, on the comparison that is false.Can you check that, please?By the way, if setting to NULL is used to exit and break too, do you know why we need the comparison? It is really weird for me. I supposed I missed something here.Thank youJackDanielZ, alias DanielOn 07/17/2013 09:06 AM, ChunEon Park - Enlightenment Git wrote: hermet pushed a commit to branch master. commit 6c7b2afd9bb8767a2d90c48a3b7e68a650585d71 Author: ChunEon Park hermet@hermet.pe.kr Date: Wed Jul 17 15:05:40 2013 +0900 elementary/widget - use eina_inlist in transate data to improve memory access / allocations. --- src/lib/elm_widget.c 35 +-- src/lib/elm_widget.h 4 ++-- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index f3d2fe9..370fb67 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c @@ -40,6 +40,7 @@ struct _Elm_Event_Cb_Data struct _Elm_Translate_String_Data { + EINA_INLIST; Eina_Stringshare *id; Eina_Stringshare *domain; Eina_Stringshare *string; @@ -305,11 +306,15 @@ _elm_widget_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)} sd-tooltips = eina_list_free(sd-tooltips); /* should be empty anyway */ sd-cursors = eina_list_free(sd-cursors); /* should be empty anyway */ - EINA_LIST_FREE(sd-translate_strings, ts) + while (sd-translate_strings) { +ts = EINA_INLIST_CONTAINER_GET(sd-translate_strings, + Elm_Translate_String_Data); eina_stringshare_del(ts-id); eina_stringshare_del(ts-domain); eina_stringshare_del(ts-string); +sd-translate_strings = eina_inlist_remove(sd-translate_strings, + sd-translate_strings); free(ts);}@@ -3815,16 +3820,15 @@ elm_widget_domain_translatable_part_text_set(Evas_Object *obj, } static Elm_Translate_String_Data * -_translate_string_data_get(Eina_List *translate_strings, const char *part) +_translate_string_data_get(Eina_Inlist *translate_strings, const char *part) { Elm_Translate_String_Data *ts; Eina_Stringshare *str; - Eina_List *l;- if (eina_list_count(translate_strings) == 0) return NULL; + if (!translate_strings) return NULL; str = eina_stringshare_add(part); - EINA_LIST_FOREACH(translate_strings, l, ts) + EINA_INLIST_FOREACH(translate_strings, ts){ if (ts-id == str) break; else ts = NULL; @@ -3835,9 +3839,9 @@ _translate_string_data_get(Eina_List *translate_strings, const char *part) } static Elm_Translate_String_Data * -_part_text_translatable_set(Eina_List **translate_strings, const char *part, Eina_Bool translatable, Eina_Bool preset) +_part_text_translatable_set(Eina_Inlist **translate_strings, const char *part, Eina_Bool translatable, Eina_Bool preset) { - Eina_List *t; + Eina_Inlist *t; Elm_Translate_String_Data *ts; t = *translate_strings; ts = _translate_string_data_get(t, part); @@ -3850,7 +3854,7 @@ _part_text_translatable_set(Eina_List **translate_strings, const char *part, Einif (!ts) return NULL; ts-id = eina_stringshare_add(part); - t = eina_list_append(t, ts); + t = eina_inlist_append(t, (Eina_Inlist*) ts); } if (preset) ts-preset = EINA_TRUE;} @@ -3860,7 +3864,7 @@