Hi,
On Sat, 2011-10-29 at 09:44 -0700, bsquared wrote:
> Hello,
>
> I am refactoring some of my test code into a class and have run
> into a problem with unowned strings.
>
> I have a class that has several methods that return strings. These
> methods get their value form the response buffer of a Soup Message.
>
> public string send_misc_method (MiscMethod mm) {
> [...]
> debug ("send_misc_method: %s",
> (string) message.response_body.flatten ().data); // OK
> return (string) message.response_body.flatten ().data
> }
>
> public unowned string get_motd () {
> string s = send_misc_method (MiscMethod.MOTD);
> debug ("get_motd: %s", s); // OK
> return s.to_string (); // transfers ownership?
> }
This looks wrong. You are creating a new unowned string from a string
wich you will drop te ownership at the end of the function. So this
unowned string will always be wrong. Probably there is no reason here to
return a unowned string.
Gr,
Thijs
> main (string[] args) {
> [...]
> debug ("main - get_motd: %s", server.get_motd ()); // !OK
> // var s = server.get_motd ();
> // debug ("main - get_motd: %s", s); // also !OK
> }
>
> output:
> ** (process:28697): DEBUG: couchdb-server-api.vala:90:
> send_misc_method: {"couchdb":"Welcome","version":"1.2.0a-"}
>
> ** (process:28697): DEBUG: couchdb-server-api.vala:104:
> get_motd: {"couchdb":"Welcome","version":"1.2.0a-"}
>
> ** (process:28697): DEBUG: couchdb-server-api.vala:146:
> main - get_motd : \xc0\xa0\u0004uchdb":"Welcome","version":"1.2.0a-"}
>
> So, what have I done wrong?
>
> Thank you.
>
_______________________________________________
vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list