Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE.
2014-03-08 10:01 GMT+01:00 Davide Andreoli d...@gurumeditation.it: 2014-03-07 9:33 GMT+01:00 woohyun woo_hyun0...@naver.com: It would be much helpful if you can give the valgrind trace :) Only with the result of gdb, it's little bit hard to check ~ I do have the valgrid output but I now the segfault seems reproducible also in the C elm test. Please try: elementary_test -to Photo woohyun: so? any news about the issue? did you tested as I suggest? People are going to make a stable release and your commit is going to be included, but it is still broken. Please fix it asap or we will need to revert it. Thanks -Original Message- From: Davide Andreolilt;d...@gurumeditation.itgt; To: Enlightenment developer list lt;enlightenment-devel@lists.sourceforge.netgt;; Cc: Sent: 2014-03-07 (금) 16:22:43 Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. 2014-03-06 23:28 GMT+01:00 Cedric BAIL lt;cedric.bailgt;@free.frgt;: gt; On Thu, Mar 6, 2014 at 5:26 PM, Davide Andreoli lt;davegt;@gurumeditation.itgt; gt; wrote: gt; gt; 2014-02-27 2:36 GMT+01:00 WooHyun Jung lt;wh0705.junggt;@samsung.comgt;: gt; gt; gt; gt;gt; woohyun pushed a commit to branch master. gt; gt;gt; gt; gt;gt; gt; gt;gt; gt; http://git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990 gthttp://git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990gt; gt;gt; gt; gt;gt; commit 6093e68cb01cf915057b9e330f7586039d092990 gt; gt;gt; Author: WooHyun Jung lt;wh0705.junggt;@samsung.comgt; gt; gt;gt; Date: Thu Feb 27 10:31:42 2014 +0900 gt; gt;gt; gt; gt;gt; evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. gt; gt;gt; gt; gt;gt; EINA_LIST_FREE does eina_list_remove_list, and clip_unset does gt; gt;gt; the same thing to the same list pointer. So, EINA_LIST_FOREACH_SAFE gt; gt;gt; is proper for this case. gt; gt;gt; --- gt; gt;gt; src/lib/evas/canvas/evas_object_main.c | 2 +- gt; gt;gt; 1 file changed, 1 insertion(+), 1 deletion(-) gt; gt;gt; gt; gt;gt; diff --git a/src/lib/evas/canvas/evas_object_main.c gt; gt;gt; b/src/lib/evas/canvas/evas_object_main.c gt; gt;gt; index 9db95d4..d8d3850 100644 gt; gt;gt; --- a/src/lib/evas/canvas/evas_object_main.c gt; gt;gt; +++ b/src/lib/evas/canvas/evas_object_main.c gt; gt;gt; @@ -654,7 +654,7 @@ _destructor(Eo *eo_obj, void *_pd, va_list *list gt; gt;gt; EINA_UNUSED) gt; gt;gt; goto end; gt; gt;gt; } gt; gt;gt; evas_object_grabs_cleanup(eo_obj, obj); gt; gt;gt; - EINA_LIST_FREE(obj-gt;clip.clipees, tmp) gt; gt;gt; + EINA_LIST_FOREACH_SAFE(obj-gt;clip.clipees, l, l2, tmp) gt; gt;gt; evas_object_clip_unset(tmp-gt;object); gt; gt;gt; EINA_LIST_FOREACH_SAFE(obj-gt;proxy-gt;proxies, l, l2, proxy) gt; gt;gt; evas_object_image_source_unset(proxy); gt; gt;gt; gt; gt; gt; gt; Weird, this commit is causing a segfault in the elementary photo test in gt; gt; python bindings...and in my Git user interface :( gt; gt; gt; gt; strangely the segfault seems not reproducible in the C photo test. gt; gt; gt; gt; The segfault is triggered when elm_object_style_set(photo, shadow) is gt; gt; called. gt; gt; gt; gt; If I revert this commit the segfault goes away, I have no idea why this gt; is gt; gt; happening, can you please give a look? Or tell me what I can check gt; gt; gt; gt; This is the first part of the gdb backtrace: gt; gt; Would you have valgrind trace to ? gt; No, sorry, I never used valgrind in python apps, dunno how to make it. If it is really needed I can make a try this evening gt; -- gt; Cedric BAIL gt; gt; gt; -- gt; Subversion Kills Productivity. Get off Subversion amp; Make the Move to gt; Perforce. gt; With Perforce, you get hassle-free workflows. Merge that actually works. gt; Faster operations. Version large binaries. Built-in WAN optimization and gt; the gt; freedom to use Git, Perforce or both. Make the move to Perforce. gt; gt; http://pubads.g.doubleclick.net/gampad/clk?id=122218951amp;iu=/4140/ostg.clktrk gthttp://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrkgt; ___ gt; enlightenment-devel mailing list gt; enlightenment-devel@lists.sourceforge.net gt; https://lists.sourceforge.net/lists/listinfo/enlightenment-devel gt https://lists.sourceforge.net/lists/listinfo/enlightenment-develgt ; -- Subversion Kills Productivity. Get off Subversion amp; Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move
Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE.
I have researched this issue - but didn't get the reason. I'll try to fix it asap. Sorry for giving unstability. -Original Message- From: Davide Andreolilt;d...@gurumeditation.itgt; To: Enlightenment developer listlt;enlightenment-devel@lists.sourceforge.netgt;; Cc: Sent: 2014-03-11 (화) 05:48:04 Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. 2014-03-08 10:01 GMT+01:00 Davide Andreoli lt;davegt;@gurumeditation.itgt;: gt; gt; 2014-03-07 9:33 GMT+01:00 woohyun lt;woo_hyun0705gt;@naver.comgt;: gt; gt; It would be much helpful if you can give the valgrind trace :) gt;gt; Only with the result of gdb, it's little bit hard to check ~ gt;gt; gt; gt; I do have the valgrid output but I now the segfault seems reproducible gt; also in the C elm test. gt; Please try: gt; elementary_test -to Photo gt; woohyun: so? any news about the issue? did you tested as I suggest? People are going to make a stable release and your commit is going to be included, but it is still broken. Please fix it asap or we will need to revert it. Thanks gt; gt; gt; gt;gt; gt;gt; -Original Message- gt;gt; From: Davide Andreolilt;d...@gurumeditation.itgt; gt;gt; To: Enlightenment developer listamp; gt;gt; lt;enlightenment-devel@lists.sourceforge.netgt;; gt;gt; Cc: gt;gt; Sent: 2014-03-07 (금) 16:22:43 gt;gt; Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: replace gt;gt; EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. gt;gt; gt;gt; 2014-03-06 23:28 GMT+01:00 Cedric BAIL lt;cedric.bailgt;@free.frgt;: gt;gt; gt;gt; gt; On Thu, Mar 6, 2014 at 5:26 PM, Davide Andreoli amp; gt;gt; lt;davegt;@gurumeditation.itgt; gt;gt; gt; wrote: gt;gt; gt; gt; 2014-02-27 2:36 GMT+01:00 WooHyun Jung amp; gt;gt; lt;wh0705.junggt;@samsung.comgt;: gt;gt; gt; gt; gt;gt; gt; gt;gt; woohyun pushed a commit to branch master. gt;gt; gt; gt;gt; gt;gt; gt; gt;gt; gt;gt; gt; gt;gt; gt;gt; gt; gt;gt; http://git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990 gt;gt; gt;lt;http:gt;//git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990gt;gt;; gt;gt; gt;gt; gt;gt; gt; gt;gt; commit 6093e68cb01cf915057b9e330f7586039d092990 gt;gt; gt; gt;gt; Author: WooHyun Jung lt;wh0705.junggt;@samsung.comgt; gt;gt; gt; gt;gt; Date: Thu Feb 27 10:31:42 2014 +0900 gt;gt; gt; gt;gt; gt;gt; gt; gt;gt; evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. gt;gt; gt; gt;gt; gt;gt; gt; gt;gt; EINA_LIST_FREE does eina_list_remove_list, and gt;gt; clip_unset does gt;gt; gt; gt;gt; the same thing to the same list pointer. So, gt;gt; EINA_LIST_FOREACH_SAFE gt;gt; gt; gt;gt; is proper for this case. gt;gt; gt; gt;gt; --- gt;gt; gt; gt;gt; src/lib/evas/canvas/evas_object_main.c | 2 +- gt;gt; gt; gt;gt; 1 file changed, 1 insertion(+), 1 deletion(-) gt;gt; gt; gt;gt; gt;gt; gt; gt;gt; diff --git a/src/lib/evas/canvas/evas_object_main.c gt;gt; gt; gt;gt; b/src/lib/evas/canvas/evas_object_main.c gt;gt; gt; gt;gt; index 9db95d4..d8d3850 100644 gt;gt; gt; gt;gt; --- a/src/lib/evas/canvas/evas_object_main.c gt;gt; gt; gt;gt; +++ b/src/lib/evas/canvas/evas_object_main.c gt;gt; gt; gt;gt; @@ -654,7 +654,7 @@ _destructor(Eo *eo_obj, void *_pd, gt;gt; va_list *list gt;gt; gt; gt;gt; EINA_UNUSED) gt;gt; gt; gt;gt; goto end; gt;gt; gt; gt;gt; } gt;gt; gt; gt;gt; evas_object_grabs_cleanup(eo_obj, obj); gt;gt; gt; gt;gt; - EINA_LIST_FREE(obj-gt;clip.clipees, tmp) gt;gt; gt; gt;gt; + EINA_LIST_FOREACH_SAFE(obj-gt;clip.clipees, l, l2, tmp) gt;gt; gt; gt;gt; evas_object_clip_unset(tmp-gt;object); gt;gt; gt; gt;gt; EINA_LIST_FOREACH_SAFE(obj-gt;proxy-gt;proxies, l, gt;gt; l2, proxy) gt;gt; gt; gt;gt; evas_object_image_source_unset(proxy); gt;gt; gt; gt;gt; gt;gt; gt; gt; gt;gt; gt; gt; Weird, this commit is causing a segfault in the elementary gt;gt; photo test in gt;gt; gt; gt; python bindings...and in my Git user interface :( gt;gt; gt; gt; gt;gt; gt; gt; strangely the segfault seems not reproducible in the C photo gt;gt; test. gt;gt; gt; gt; gt;gt; gt; gt; The segfault is triggered when elm_object_style_set(photo, gt;gt; shadow) is gt;gt; gt; gt; called. gt;gt; gt; gt; gt;gt; gt; gt; If I revert this commit the segfault goes away, I have no idea gt;gt; why this gt;gt; gt; is gt;gt; gt; gt; happening, can you please give a look? Or tell me what I can gt;gt; check gt;gt; gt; gt; gt;gt; gt; gt; This is the first part of the gdb backtrace: gt;gt; gt; gt;gt; gt; Would you have valgrind trace to ? gt;gt; gt; gt;gt; gt;gt; No, sorry, I never used valgrind in python apps, dunno how to make it. If gt;gt; it is really needed I can make a try this evening gt;gt; gt;gt; gt;gt; gt; -- gt;gt; gt; Cedric BAIL gt;gt; gt; gt;gt; gt; gt;gt; gt; gt;gt; -- gt;gt; gt; Subversion Kills Productivity. Get off Subversion amp; Make the gt;gt
Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE.
2014-03-07 9:33 GMT+01:00 woohyun woo_hyun0...@naver.com: It would be much helpful if you can give the valgrind trace :) Only with the result of gdb, it's little bit hard to check ~ I do have the valgrid output but I now the segfault seems reproducible also in the C elm test. Please try: elementary_test -to Photo -Original Message- From: Davide Andreolilt;d...@gurumeditation.itgt; To: Enlightenment developer list lt;enlightenment-devel@lists.sourceforge.netgt;; Cc: Sent: 2014-03-07 (금) 16:22:43 Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. 2014-03-06 23:28 GMT+01:00 Cedric BAIL lt;cedric.bailgt;@free.frgt;: gt; On Thu, Mar 6, 2014 at 5:26 PM, Davide Andreoli lt;davegt;@gurumeditation.itgt; gt; wrote: gt; gt; 2014-02-27 2:36 GMT+01:00 WooHyun Jung lt;wh0705.junggt;@samsung.comgt;: gt; gt; gt; gt;gt; woohyun pushed a commit to branch master. gt; gt;gt; gt; gt;gt; gt; gt;gt; gt; http://git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990 gt; gt;gt; gt; gt;gt; commit 6093e68cb01cf915057b9e330f7586039d092990 gt; gt;gt; Author: WooHyun Jung lt;wh0705.junggt;@samsung.comgt; gt; gt;gt; Date: Thu Feb 27 10:31:42 2014 +0900 gt; gt;gt; gt; gt;gt; evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. gt; gt;gt; gt; gt;gt; EINA_LIST_FREE does eina_list_remove_list, and clip_unset does gt; gt;gt; the same thing to the same list pointer. So, EINA_LIST_FOREACH_SAFE gt; gt;gt; is proper for this case. gt; gt;gt; --- gt; gt;gt; src/lib/evas/canvas/evas_object_main.c | 2 +- gt; gt;gt; 1 file changed, 1 insertion(+), 1 deletion(-) gt; gt;gt; gt; gt;gt; diff --git a/src/lib/evas/canvas/evas_object_main.c gt; gt;gt; b/src/lib/evas/canvas/evas_object_main.c gt; gt;gt; index 9db95d4..d8d3850 100644 gt; gt;gt; --- a/src/lib/evas/canvas/evas_object_main.c gt; gt;gt; +++ b/src/lib/evas/canvas/evas_object_main.c gt; gt;gt; @@ -654,7 +654,7 @@ _destructor(Eo *eo_obj, void *_pd, va_list *list gt; gt;gt; EINA_UNUSED) gt; gt;gt; goto end; gt; gt;gt; } gt; gt;gt; evas_object_grabs_cleanup(eo_obj, obj); gt; gt;gt; - EINA_LIST_FREE(obj-gt;clip.clipees, tmp) gt; gt;gt; + EINA_LIST_FOREACH_SAFE(obj-gt;clip.clipees, l, l2, tmp) gt; gt;gt; evas_object_clip_unset(tmp-gt;object); gt; gt;gt; EINA_LIST_FOREACH_SAFE(obj-gt;proxy-gt;proxies, l, l2, proxy) gt; gt;gt; evas_object_image_source_unset(proxy); gt; gt;gt; gt; gt; gt; gt; Weird, this commit is causing a segfault in the elementary photo test in gt; gt; python bindings...and in my Git user interface :( gt; gt; gt; gt; strangely the segfault seems not reproducible in the C photo test. gt; gt; gt; gt; The segfault is triggered when elm_object_style_set(photo, shadow) is gt; gt; called. gt; gt; gt; gt; If I revert this commit the segfault goes away, I have no idea why this gt; is gt; gt; happening, can you please give a look? Or tell me what I can check gt; gt; gt; gt; This is the first part of the gdb backtrace: gt; gt; Would you have valgrind trace to ? gt; No, sorry, I never used valgrind in python apps, dunno how to make it. If it is really needed I can make a try this evening gt; -- gt; Cedric BAIL gt; gt; gt; -- gt; Subversion Kills Productivity. Get off Subversion amp; Make the Move to gt; Perforce. gt; With Perforce, you get hassle-free workflows. Merge that actually works. gt; Faster operations. Version large binaries. Built-in WAN optimization and gt; the gt; freedom to use Git, Perforce or both. Make the move to Perforce. gt; gt; http://pubads.g.doubleclick.net/gampad/clk?id=122218951amp;iu=/4140/ostg.clktrk gt; ___ gt; enlightenment-devel mailing list gt; enlightenment-devel@lists.sourceforge.net gt; https://lists.sourceforge.net/lists/listinfo/enlightenment-devel gt; -- Subversion Kills Productivity. Get off Subversion amp; Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951amp;iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Subversion Kills Productivity. Get off Subversion Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large
Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE.
It would be much helpful if you can give the valgrind trace :) Only with the result of gdb, it's little bit hard to check ~ -Original Message- From: Davide Andreolilt;d...@gurumeditation.itgt; To: Enlightenment developer listlt;enlightenment-devel@lists.sourceforge.netgt;; Cc: Sent: 2014-03-07 (금) 16:22:43 Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. 2014-03-06 23:28 GMT+01:00 Cedric BAIL lt;cedric.bailgt;@free.frgt;: gt; On Thu, Mar 6, 2014 at 5:26 PM, Davide Andreoli lt;davegt;@gurumeditation.itgt; gt; wrote: gt; gt; 2014-02-27 2:36 GMT+01:00 WooHyun Jung lt;wh0705.junggt;@samsung.comgt;: gt; gt; gt; gt;gt; woohyun pushed a commit to branch master. gt; gt;gt; gt; gt;gt; gt; gt;gt; gt; http://git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990 gt; gt;gt; gt; gt;gt; commit 6093e68cb01cf915057b9e330f7586039d092990 gt; gt;gt; Author: WooHyun Jung lt;wh0705.junggt;@samsung.comgt; gt; gt;gt; Date: Thu Feb 27 10:31:42 2014 +0900 gt; gt;gt; gt; gt;gt; evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. gt; gt;gt; gt; gt;gt; EINA_LIST_FREE does eina_list_remove_list, and clip_unset does gt; gt;gt; the same thing to the same list pointer. So, EINA_LIST_FOREACH_SAFE gt; gt;gt; is proper for this case. gt; gt;gt; --- gt; gt;gt; src/lib/evas/canvas/evas_object_main.c | 2 +- gt; gt;gt; 1 file changed, 1 insertion(+), 1 deletion(-) gt; gt;gt; gt; gt;gt; diff --git a/src/lib/evas/canvas/evas_object_main.c gt; gt;gt; b/src/lib/evas/canvas/evas_object_main.c gt; gt;gt; index 9db95d4..d8d3850 100644 gt; gt;gt; --- a/src/lib/evas/canvas/evas_object_main.c gt; gt;gt; +++ b/src/lib/evas/canvas/evas_object_main.c gt; gt;gt; @@ -654,7 +654,7 @@ _destructor(Eo *eo_obj, void *_pd, va_list *list gt; gt;gt; EINA_UNUSED) gt; gt;gt; goto end; gt; gt;gt; } gt; gt;gt; evas_object_grabs_cleanup(eo_obj, obj); gt; gt;gt; - EINA_LIST_FREE(obj-gt;clip.clipees, tmp) gt; gt;gt; + EINA_LIST_FOREACH_SAFE(obj-gt;clip.clipees, l, l2, tmp) gt; gt;gt; evas_object_clip_unset(tmp-gt;object); gt; gt;gt; EINA_LIST_FOREACH_SAFE(obj-gt;proxy-gt;proxies, l, l2, proxy) gt; gt;gt; evas_object_image_source_unset(proxy); gt; gt;gt; gt; gt; gt; gt; Weird, this commit is causing a segfault in the elementary photo test in gt; gt; python bindings...and in my Git user interface :( gt; gt; gt; gt; strangely the segfault seems not reproducible in the C photo test. gt; gt; gt; gt; The segfault is triggered when elm_object_style_set(photo, shadow) is gt; gt; called. gt; gt; gt; gt; If I revert this commit the segfault goes away, I have no idea why this gt; is gt; gt; happening, can you please give a look? Or tell me what I can check gt; gt; gt; gt; This is the first part of the gdb backtrace: gt; gt; Would you have valgrind trace to ? gt; No, sorry, I never used valgrind in python apps, dunno how to make it. If it is really needed I can make a try this evening gt; -- gt; Cedric BAIL gt; gt; gt; -- gt; Subversion Kills Productivity. Get off Subversion amp; Make the Move to gt; Perforce. gt; With Perforce, you get hassle-free workflows. Merge that actually works. gt; Faster operations. Version large binaries. Built-in WAN optimization and gt; the gt; freedom to use Git, Perforce or both. Make the move to Perforce. gt; gt; http://pubads.g.doubleclick.net/gampad/clk?id=122218951amp;iu=/4140/ostg.clktrk gt; ___ gt; enlightenment-devel mailing list gt; enlightenment-devel@lists.sourceforge.net gt; https://lists.sourceforge.net/lists/listinfo/enlightenment-devel gt; -- Subversion Kills Productivity. Get off Subversion amp; Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951amp;iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Subversion Kills Productivity. Get off Subversion Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE.
2014-02-27 2:36 GMT+01:00 WooHyun Jung wh0705.j...@samsung.com: woohyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990 commit 6093e68cb01cf915057b9e330f7586039d092990 Author: WooHyun Jung wh0705.j...@samsung.com Date: Thu Feb 27 10:31:42 2014 +0900 evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. EINA_LIST_FREE does eina_list_remove_list, and clip_unset does the same thing to the same list pointer. So, EINA_LIST_FOREACH_SAFE is proper for this case. --- src/lib/evas/canvas/evas_object_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index 9db95d4..d8d3850 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -654,7 +654,7 @@ _destructor(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED) goto end; } evas_object_grabs_cleanup(eo_obj, obj); - EINA_LIST_FREE(obj-clip.clipees, tmp) + EINA_LIST_FOREACH_SAFE(obj-clip.clipees, l, l2, tmp) evas_object_clip_unset(tmp-object); EINA_LIST_FOREACH_SAFE(obj-proxy-proxies, l, l2, proxy) evas_object_image_source_unset(proxy); Weird, this commit is causing a segfault in the elementary photo test in python bindings...and in my Git user interface :( strangely the segfault seems not reproducible in the C photo test. The segfault is triggered when elm_object_style_set(photo, shadow) is called. If I revert this commit the segfault goes away, I have no idea why this is happening, can you please give a look? Or tell me what I can check This is the first part of the gdb backtrace: --- Program received signal SIGSEGV, Segmentation fault. _destructor (eo_obj=0x8082e418, _pd=0xd6d470, list=optimized out) at lib/evas/canvas/evas_object_main.c:658 658 evas_object_clip_unset(tmp-object); (gdb) bt full #0 _destructor (eo_obj=0x8082e418, _pd=0xd6d470, list=optimized out) at lib/evas/canvas/evas_object_main.c:658 obj = 0xd6d470 tmp = 0x0 proxy = optimized out l = optimized out l2 = 0x0 #1 0x74cc17ec in _eo_op_internal (p_list=0x7fffc948, op=3, op_type=EO_OP_TYPE_REGULAR, cur_klass=0xae0ef0, eo_ptr=0xd6d400, line=220, file=0x74cc8773 lib/eo/eo_private.h) at lib/eo/eo.c:306 func_data = optimized out calling_obj = optimized out func = 0x0 Thanks davemds -- Subversion Kills Productivity. Get off Subversion Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/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 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE.
On Thu, Mar 6, 2014 at 5:26 PM, Davide Andreoli d...@gurumeditation.it wrote: 2014-02-27 2:36 GMT+01:00 WooHyun Jung wh0705.j...@samsung.com: woohyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990 commit 6093e68cb01cf915057b9e330f7586039d092990 Author: WooHyun Jung wh0705.j...@samsung.com Date: Thu Feb 27 10:31:42 2014 +0900 evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. EINA_LIST_FREE does eina_list_remove_list, and clip_unset does the same thing to the same list pointer. So, EINA_LIST_FOREACH_SAFE is proper for this case. --- src/lib/evas/canvas/evas_object_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index 9db95d4..d8d3850 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -654,7 +654,7 @@ _destructor(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED) goto end; } evas_object_grabs_cleanup(eo_obj, obj); - EINA_LIST_FREE(obj-clip.clipees, tmp) + EINA_LIST_FOREACH_SAFE(obj-clip.clipees, l, l2, tmp) evas_object_clip_unset(tmp-object); EINA_LIST_FOREACH_SAFE(obj-proxy-proxies, l, l2, proxy) evas_object_image_source_unset(proxy); Weird, this commit is causing a segfault in the elementary photo test in python bindings...and in my Git user interface :( strangely the segfault seems not reproducible in the C photo test. The segfault is triggered when elm_object_style_set(photo, shadow) is called. If I revert this commit the segfault goes away, I have no idea why this is happening, can you please give a look? Or tell me what I can check This is the first part of the gdb backtrace: Would you have valgrind trace to ? -- Cedric BAIL -- Subversion Kills Productivity. Get off Subversion Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/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 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE.
2014-03-06 23:28 GMT+01:00 Cedric BAIL cedric.b...@free.fr: On Thu, Mar 6, 2014 at 5:26 PM, Davide Andreoli d...@gurumeditation.it wrote: 2014-02-27 2:36 GMT+01:00 WooHyun Jung wh0705.j...@samsung.com: woohyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990 commit 6093e68cb01cf915057b9e330f7586039d092990 Author: WooHyun Jung wh0705.j...@samsung.com Date: Thu Feb 27 10:31:42 2014 +0900 evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. EINA_LIST_FREE does eina_list_remove_list, and clip_unset does the same thing to the same list pointer. So, EINA_LIST_FOREACH_SAFE is proper for this case. --- src/lib/evas/canvas/evas_object_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index 9db95d4..d8d3850 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -654,7 +654,7 @@ _destructor(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED) goto end; } evas_object_grabs_cleanup(eo_obj, obj); - EINA_LIST_FREE(obj-clip.clipees, tmp) + EINA_LIST_FOREACH_SAFE(obj-clip.clipees, l, l2, tmp) evas_object_clip_unset(tmp-object); EINA_LIST_FOREACH_SAFE(obj-proxy-proxies, l, l2, proxy) evas_object_image_source_unset(proxy); Weird, this commit is causing a segfault in the elementary photo test in python bindings...and in my Git user interface :( strangely the segfault seems not reproducible in the C photo test. The segfault is triggered when elm_object_style_set(photo, shadow) is called. If I revert this commit the segfault goes away, I have no idea why this is happening, can you please give a look? Or tell me what I can check This is the first part of the gdb backtrace: Would you have valgrind trace to ? No, sorry, I never used valgrind in python apps, dunno how to make it. If it is really needed I can make a try this evening -- Cedric BAIL -- Subversion Kills Productivity. Get off Subversion Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Subversion Kills Productivity. Get off Subversion Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/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 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE.
On Sat, Mar 1, 2014 at 2:18 AM, Daniel Juyung Seo seojuyu...@gmail.com wrote: On Thu, Feb 27, 2014 at 11:46 PM, Gustavo Sverzut Barbieri barbi...@gmail.com wrote: On Wed, Feb 26, 2014 at 10:36 PM, WooHyun Jung wh0705.j...@samsung.com wrote: woohyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990 commit 6093e68cb01cf915057b9e330f7586039d092990 Author: WooHyun Jung wh0705.j...@samsung.com Date: Thu Feb 27 10:31:42 2014 +0900 evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. EINA_LIST_FREE does eina_list_remove_list, and clip_unset does the same thing to the same list pointer. So, EINA_LIST_FOREACH_SAFE is proper for this case. --- src/lib/evas/canvas/evas_object_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index 9db95d4..d8d3850 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -654,7 +654,7 @@ _destructor(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED) goto end; } evas_object_grabs_cleanup(eo_obj, obj); - EINA_LIST_FREE(obj-clip.clipees, tmp) + EINA_LIST_FOREACH_SAFE(obj-clip.clipees, l, l2, tmp) evas_object_clip_unset(tmp-object); if that's the case then a saner approach is to NULL obj-clip.clipees and then iterate the list: l = obj-clip.clipees; obj-clip.clipees = NULL; EINA_LIST_FREE(l, tmp) evas_object_clip_unset(tmp-obj) of course you may have to clear tmp and whatever is needed to do here as well. the solution above is simpler and should be faster than your solution using the foreach-safe version. Dear Barbieri, thanks for the suggestion. But when I look at the evas_object_clip_unset(), it looks like your approach has no benefit. https://git.enlightenment.org/core/efl.git/tree/src/lib/evas/canvas/evas_clip.c#n400 In line number 401, if obj-cur-clipper-clip.clipees is NULL, it will trigger the following codes. if (!obj-cur-clipper-clip.clipees) { EINA_COW_STATE_WRITE_BEGIN(obj-cur-clipper, state_write, cur) { state_write-have_clipees = 0; } EINA_COW_STATE_WRITE_END(obj-cur-clipper, state_write, cur); if ((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) { if (obj-cur-clipper-layer) { Evas_Public_Data *e = obj-cur-clipper-layer-evas; evas_damage_rectangle_add(e-evas, obj-cur-clipper-cur-geometry.x + e-framespace.x, obj-cur-clipper-cur-geometry.y + e-framespace.y, obj-cur-clipper-cur-geometry.w, obj-cur-clipper-cur-geometry.h); } } } So Woohyun's approach looks ok to me. evas_object_image_source_unset() does the same thing. So the current code looks like: EINA_LIST_FOREACH_SAFE(obj-clip.clipees, l, l2, tmp) evas_object_clip_unset(tmp-object); EINA_LIST_FOREACH_SAFE(obj-proxy-proxies, l, l2, proxy) evas_object_image_source_unset(proxy); https://git.enlightenment.org/core/efl.git/tree/src/lib/evas/canvas/evas_object_main.c#n659 How do you think? I think that we should have a private version that doesn't do what is being done right now that is shared between the cleanup/destructor version we're doing and the actual clip_unset(). The clip_unset() version would still have the code you listed, the cleanup wouldn't. Of course we shouldn't be executing the have_clipees or adding damage rect if we're going to die. But we shouldn't be going thru eo or all those checks anyway. same applies to source_unset(). -- Gustavo Sverzut Barbieri -- Mobile: +55 (19) 9225-2202 Contact: http://www.gustavobarbieri.com.br/contact -- Subversion Kills Productivity. Get off Subversion Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/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 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE.
On Thu, Feb 27, 2014 at 11:46 PM, Gustavo Sverzut Barbieri barbi...@gmail.com wrote: On Wed, Feb 26, 2014 at 10:36 PM, WooHyun Jung wh0705.j...@samsung.com wrote: woohyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990 commit 6093e68cb01cf915057b9e330f7586039d092990 Author: WooHyun Jung wh0705.j...@samsung.com Date: Thu Feb 27 10:31:42 2014 +0900 evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. EINA_LIST_FREE does eina_list_remove_list, and clip_unset does the same thing to the same list pointer. So, EINA_LIST_FOREACH_SAFE is proper for this case. --- src/lib/evas/canvas/evas_object_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index 9db95d4..d8d3850 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -654,7 +654,7 @@ _destructor(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED) goto end; } evas_object_grabs_cleanup(eo_obj, obj); - EINA_LIST_FREE(obj-clip.clipees, tmp) + EINA_LIST_FOREACH_SAFE(obj-clip.clipees, l, l2, tmp) evas_object_clip_unset(tmp-object); if that's the case then a saner approach is to NULL obj-clip.clipees and then iterate the list: l = obj-clip.clipees; obj-clip.clipees = NULL; EINA_LIST_FREE(l, tmp) evas_object_clip_unset(tmp-obj) of course you may have to clear tmp and whatever is needed to do here as well. the solution above is simpler and should be faster than your solution using the foreach-safe version. Dear Barbieri, thanks for the suggestion. But when I look at the evas_object_clip_unset(), it looks like your approach has no benefit. https://git.enlightenment.org/core/efl.git/tree/src/lib/evas/canvas/evas_clip.c#n400 In line number 401, if obj-cur-clipper-clip.clipees is NULL, it will trigger the following codes. if (!obj-cur-clipper-clip.clipees) { EINA_COW_STATE_WRITE_BEGIN(obj-cur-clipper, state_write, cur) { state_write-have_clipees = 0; } EINA_COW_STATE_WRITE_END(obj-cur-clipper, state_write, cur); if ((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) { if (obj-cur-clipper-layer) { Evas_Public_Data *e = obj-cur-clipper-layer-evas; evas_damage_rectangle_add(e-evas, obj-cur-clipper-cur-geometry.x + e-framespace.x, obj-cur-clipper-cur-geometry.y + e-framespace.y, obj-cur-clipper-cur-geometry.w, obj-cur-clipper-cur-geometry.h); } } } So Woohyun's approach looks ok to me. evas_object_image_source_unset() does the same thing. So the current code looks like: EINA_LIST_FOREACH_SAFE(obj-clip.clipees, l, l2, tmp) evas_object_clip_unset(tmp-object); EINA_LIST_FOREACH_SAFE(obj-proxy-proxies, l, l2, proxy) evas_object_image_source_unset(proxy); https://git.enlightenment.org/core/efl.git/tree/src/lib/evas/canvas/evas_object_main.c#n659 How do you think? Daniel Juyung Seo (SeoZ) -- Gustavo Sverzut Barbieri -- Mobile: +55 (19) 9225-2202 Contact: http://www.gustavobarbieri.com.br/contact -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/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 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE.
On Wed, Feb 26, 2014 at 10:36 PM, WooHyun Jung wh0705.j...@samsung.com wrote: woohyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990 commit 6093e68cb01cf915057b9e330f7586039d092990 Author: WooHyun Jung wh0705.j...@samsung.com Date: Thu Feb 27 10:31:42 2014 +0900 evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. EINA_LIST_FREE does eina_list_remove_list, and clip_unset does the same thing to the same list pointer. So, EINA_LIST_FOREACH_SAFE is proper for this case. --- src/lib/evas/canvas/evas_object_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index 9db95d4..d8d3850 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -654,7 +654,7 @@ _destructor(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED) goto end; } evas_object_grabs_cleanup(eo_obj, obj); - EINA_LIST_FREE(obj-clip.clipees, tmp) + EINA_LIST_FOREACH_SAFE(obj-clip.clipees, l, l2, tmp) evas_object_clip_unset(tmp-object); if that's the case then a saner approach is to NULL obj-clip.clipees and then iterate the list: l = obj-clip.clipees; obj-clip.clipees = NULL; EINA_LIST_FREE(l, tmp) evas_object_clip_unset(tmp-obj) of course you may have to clear tmp and whatever is needed to do here as well. the solution above is simpler and should be faster than your solution using the foreach-safe version. -- Gustavo Sverzut Barbieri -- Mobile: +55 (19) 9225-2202 Contact: http://www.gustavobarbieri.com.br/contact -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE.
woohyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6093e68cb01cf915057b9e330f7586039d092990 commit 6093e68cb01cf915057b9e330f7586039d092990 Author: WooHyun Jung wh0705.j...@samsung.com Date: Thu Feb 27 10:31:42 2014 +0900 evas: replace EINA_LIST_FREE to EINA_LIST_FOREACH_SAFE. EINA_LIST_FREE does eina_list_remove_list, and clip_unset does the same thing to the same list pointer. So, EINA_LIST_FOREACH_SAFE is proper for this case. --- src/lib/evas/canvas/evas_object_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index 9db95d4..d8d3850 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -654,7 +654,7 @@ _destructor(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED) goto end; } evas_object_grabs_cleanup(eo_obj, obj); - EINA_LIST_FREE(obj-clip.clipees, tmp) + EINA_LIST_FOREACH_SAFE(obj-clip.clipees, l, l2, tmp) evas_object_clip_unset(tmp-object); EINA_LIST_FOREACH_SAFE(obj-proxy-proxies, l, l2, proxy) evas_object_image_source_unset(proxy); --