2016-06-10 15:18 GMT+02:00 Felipe Magno de Almeida < felipe.m.alme...@gmail.com>:
> On Jun 10, 2016 1:55 AM, "Davide Andreoli" <d...@gurumeditation.it> wrote: > > > > 2016-06-10 4:10 GMT+02:00 Jean-Philippe André <j...@videolan.org>: > > > > > Hi, > > > > > > > > > This is bu5hman's idea mostly, but I'd like to bring the question to > the > > > attention of everyone, as I had the same idea before. > > > > > > For simple structs (think Eina.Rectangle, and Efl.Gfx.Color), would it > be > > > acceptable to pass them by value instead of reference, in C? > > > That is: > > > > > > Eina_Rectangle a = {1, 2, 3, 4}; > > > rect_set(obj, rect); > > > Eina_Rectangle b = rect_get(obj); > > > > > > Or even (non portable way, but applications could feel free to use > this): > > > rect_set(obj, (Eina_Rectangle){.w = 13, .h = 37}); > > > > > > > > > I understand this could simplify some code. > > > > > > > > > My main problem with it is a concern about ABI compatibility. It seems > GCC > > > itself has various ways to pass structs by value. See: > > > > > > > > http://stackoverflow.com/questions/161788/are-there-any-downsides-to-passing-structs-by-value-in-c-rather-than-passing-a > > > > > > > > > Does anyone have real-life knowledge about this? How is it on Windows? > > > Any strong arguments in favor or against? > > > > > > > I'm against this changes for 2 main reason: > > 1. API coherence: if we use rect, color, and maybe pos in some api, then > we > > should use them > > in ALL the api that use rect, color, geom, etc... this will be a massive > > change. > > 2. Will make bindings a lot slower, for each function call we need to > > allocate the struct, fill with value > > provided by user and pass this struct to the C function.. and then free > it. > > All this for each function call. > > Why would bindings allocate and free? Why not just pass by value too? How > is that any different for bindings. By value is likely faster with small > structs if anything. > what do you mean by "pass by value" ? the "non portable way? > > just my 2 cents > > > > > > > > > > > > > -- > > > Jean-Philippe André > > > > > > > > ------------------------------------------------------------------------------ > > > What NetFlow Analyzer can do for you? Monitors network bandwidth and > > > traffic > > > patterns at an interface-level. Reveals which users, apps, and > protocols > > > are > > > consuming the most bandwidth. Provides multi-vendor support for > NetFlow, > > > J-Flow, sFlow and other flows. Make informed decisions using capacity > > > planning reports. > https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > > > _______________________________________________ > > > enlightenment-devel mailing list > > > enlightenment-devel@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > > > ------------------------------------------------------------------------------ > > What NetFlow Analyzer can do for you? Monitors network bandwidth and > traffic > > patterns at an interface-level. Reveals which users, apps, and protocols > are > > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > > J-Flow, sFlow and other flows. Make informed decisions using capacity > > planning reports. > https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > > _______________________________________________ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > ------------------------------------------------------------------------------ > What NetFlow Analyzer can do for you? Monitors network bandwidth and > traffic > patterns at an interface-level. Reveals which users, apps, and protocols > are > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > J-Flow, sFlow and other flows. Make informed decisions using capacity > planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel