Re: [Vala] how to pass a List by reference?



On Fri, 2011-10-14 at 08:22 -0700, bsquared wrote:
Martin Ertsås <mertsas cisco com> writes:

You could use out instead to populate the list:

static void populate_list (out Slist<string> list) {
}

And call this method with:

var list = new Slist<string> ();
populate_list (out list);

Thank you.

I originally tried the 'out' modifier, and I got a warning[1].
I looked at the tutorial[2] and it seems to indicate the 'ref'
modifier is used as in your example. It indicates that the 'out' 
modifier is called like this:

         SList<string> list;
         populate_list (out list);

It would be initialized on the callee side.  

         static void populate_list (out SList<string> list) {
                list = new SList<string> ();
                [...]
         } 

[1] - use of possibly unassigned parameter.
[2] - http://live.gnome.org/Vala/Tutorial#Parameter_Directions 

The empty list is NULL not new SList<string> (). new SList<string> () is
a list of length 1 with garbage as contents.

Regards

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]