On Sat, 2008-12-20 at 13:04 +0100, Jürg Billeter wrote: > On Sat, 2008-12-20 at 12:19 +0100, Xavier Bestel wrote: > > Le vendredi 19 décembre 2008 à 12:10 +0100, Jürg Billeter a écrit : > > > I just committed some ownership syntax changes to trunk. The old syntax > > > will continue to be supported but is planned to be deprecated after the > > > release of Vala 0.5.4. > > > > > > > > > * `owned' type modifier replaces `#' type modifier > > > > > > This is not often used, but `#' was very unintuitive as a type modifier, > > > and I therefore decided to replace it by the hopefully better > > > understandable `owned' modifier. Example of new syntax: > > > > > > public void foo (owned string bar) { > > > [...] > > > } > > > > I like the idea, but the word "owned" doesn't really tells by who it's > > owned (caller or callee). How about something like "callers" or > > "transfer" ? > > `owned' applied to a parameter means that the parameter owns the object, > that is, the ownership of the object is transferred in the same > direction as the parameter value: to the callee for input paramters, to > the caller for output parameters, and input to the callee and output to > the caller for `ref' parameters. `owned' is still not much better than # because the world owned doesn't describe the flow of the ownership; and where people can easily get confused is the direction of the flow.
I read into glib again and perhaps a steal/take pair can work together. void foo(take string bar); foo will take the ownership of bar from the caller context. foo(steal "bar"); the ownership of "bar" is stolen from the caller context. (notice the steal now is written in the caller code.) > > The issue with the caller/callee owned terminology is that this does not > apply very well to `ref' parameters and fields, which means that we > would need yet another modifier in those places. > > Jürg > > _______________________________________________ > Vala-list mailing list > Vala-list@gnome.org > http://mail.gnome.org/mailman/listinfo/vala-list _______________________________________________ Vala-list mailing list Vala-list@gnome.org http://mail.gnome.org/mailman/listinfo/vala-list