Yes, now I see it. I guess that it might be error specific to implementation of GLib.SList.
In example that you gave, same behaviour can be seen when removing first item from other list (given_list). If it is first item, list you were modifying works fine, but other seems to be broken (it is the same in both cases, modifying given_list or list). I won't be able to help you :( (btw, I use Gee for lists/arrays etc). Jarek 2012/11/6 Tal Hadad <[email protected]> > > I'm sorry, the example I gave is bad. Forgot the "unowned" word. > Example: > > unowned GLib.SList list = given_list; > > list.remove(data); > > Do you see the problem here? > If "data" is on the FIRST item on the list, it only removes it from > "list", not from the owned variable "given_list". > > I run into bug likes that im my program and just wanted to warn > Vala devs. > > Do you see the problem now? > > Tal > > Date: Mon, 5 Nov 2012 17:01:14 +0100 > Subject: Re: [Vala] Should be warning(maybe error) when method with > [ReturnsModifiedPointer] is called from unowned variable > From: [email protected] > To: [email protected] > CC: [email protected] > > I am confused here. What [ReturnsModifiedPointer] has to do with > copying/referencing an object? > With GLib.SList list = given_list; you do not create a copy of an object > but owned reference/pointer. And if you do anything to that reference, you > will modify given_list too. > > And in most cases not copying object, but referencing it is desired > behaviour, so I don't see problem here. I would also not desire assuming > that copy should be created whenever I assign object from unowned reference > to owned reference. > > I think that everything is ok here, unless I am missing something. > Could you describe the result you expect from the code you provided? > Jarek > > 2012/11/4 Tal Hadad <[email protected]> > > > > There should be warning(maybe error) when method with > > [ReturnsModifiedPointer] is called from unowned variable. > > > > Take a look on GLib.SList. The beginner programer(me too) can be > > assign an unowned variable to the list, and remove items, but he > > don't know it shell update the owned pointer. > > > > Example: > > > > GLib.SList list = given_list; > > list.remove(data); > > > > Naive programers can be fooled(like me) that this code are valid, > > since Vala print no errors neither warning. > > > > I think we all agree it's NOT ok, but do you see this as error or warning? > > > > Yours > > Tal > > > _______________________________________________ > > vala-list mailing list > > [email protected] > > https://mail.gnome.org/mailman/listinfo/vala-list > > > > > > _______________________________________________ > vala-list mailing list > [email protected] > https://mail.gnome.org/mailman/listinfo/vala-list > >
_______________________________________________ vala-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/vala-list
