On Thu, Jul 25, 2013 at 1:46 PM, Tom Hacohen <tom.haco...@samsung.com> wrote: > On 24/07/13 03:09, Carsten Haitzler (The Rasterman) wrote: >> 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). >> > > Already showed you a solution, the one with the bla function. It works > and it's mostly clean.
how so? The __VA_ARGS__ may contain a return and it will never reach eo2_do_end() -- 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=48808831&iu=/4140/ostg.clktrk _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel