Hello, في ث، 08-03-2011 عند 02:49 +0000 ، كتب Pg Dr Hj Norjaidi bin Pg Tuah: > The following code crashes when compiled with 0.11.6 > due to an attempt to deallocate the static string "bar" > (https://bugzilla.gnome.org/show_bug.cgi?id=642350). > > struct Foo { > public string foo; > public string bar; > } > > void main() { > Foo f = Foo() {foo = "foo", bar = N_("bar")}; > } > > > As a work around, I change the struct strings to > unowned. Thus: > > struct Foo { > public unowned string foo; > public unowned string bar; > } > > > That seems to work. But I'm apprehensive here. > Is my workaround safe? Am I abusing "unowned"?
I'd say you should just take care, your "workaround" is not inherently unsafe, and isn't really an abuse (I'd call that aggressive optimisation). You should make sure that the strings you assign to these fields aren't going to be freed somewhere else. For example, if they are always static strings, you should be fine. HTH, Abderrahim _______________________________________________ vala-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/vala-list
