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

Reply via email to