Thank you very much for the help Emmanuele. On Fri, Aug 19, 2011 at 3:13 PM, Emmanuele Bassi <[email protected]> wrote:
> > On 2011-08-19 at 14:11, Tiago Katcipis wrote: > > > > I expected that the returned string would be the same as codec->payload, > but > > on my tests, it is not, what i get when i call: > > > > gchar * payload = NULL; > > > > g_object_get (codec_info, "payload", &payload, NULL); > > yes, this will always perform a copy of the string because of various > historical reasons and syntax limitations, especially when dealing with > transformable values; there is no actual way to know whether a property > will effectively make a copy of the string from outside the object > class. > > if you use g_object_get_property() and a GValue* you should be able to > get the original pointer without a copy of the GValue payload — but > still at the cost of a couple of GValue boxing/copy/unboxing. > > my recommendation, though, is to provide a function for direct access > and not go through g_object_set/_get; a direct accessors pair will allow > you to control the semantics of memory management instead of relying on > GObject's. > > there is ongoing work to make GObject properties faster and more tied to > the private structures, e.g.: > > https://bugzilla.gnome.org/show_bug.cgi?id=648526 > > the bug above will introduce new API to declare and define properties > and relative accessors, and should also provide API to know the memory > management of the accessors as well; the code is available in the > g-property branch of GLib: > > http://git.gnome.org/browse/glib/log/?h=g-property > > and testing is most welcome. > > ciao, > Emmanuele. > > -- > W: http://www.emmanuelebassi.name > B: http://blogs.gnome.org/ebassi > _______________________________________________ > gnome-devel-list mailing list > [email protected] > http://mail.gnome.org/mailman/listinfo/gnome-devel-list >
_______________________________________________ gnome-devel-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gnome-devel-list
