mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-07-30 05:43:28 +02:00
invoke GObjectClass.constructed() only for newly constructed objects, and
Tue Apr 3 12:34:14 2007 Tim Janik <timj@gtk.org> * gobject.[hc]: invoke GObjectClass.constructed() only for newly constructed objects, and invoke it while the notify queue is still being frozen, after all CONSTRUCT* properties have been set and before random other properties are being set. * applied modified patch from Ryan Lortie to implement GObjectClass.constructed() to fix #425324. 2007-04-02 Ryan Lortie <desrt@desrt.ca> * gobject/gobject.h: Add 'constructed' vcall to GObjectClass. * gobject/gobject.c (g_object_newv): call ->constructed() as last step of object construction. svn path=/trunk/; revision=5441
This commit is contained in:
@@ -950,6 +950,10 @@ g_object_newv (GType object_type,
|
||||
if (newly_constructed)
|
||||
g_object_notify_queue_thaw (object, nqueue);
|
||||
|
||||
/* run 'constructed' handler if there is one */
|
||||
if (newly_constructed && class->constructed)
|
||||
class->constructed (object);
|
||||
|
||||
/* set remaining properties */
|
||||
for (i = 0; i < n_oparams; i++)
|
||||
object_set_property (object, oparams[i].pspec, oparams[i].value, nqueue);
|
||||
@@ -958,6 +962,7 @@ g_object_newv (GType object_type,
|
||||
/* release our own freeze count and handle notifications */
|
||||
if (newly_constructed || n_oparams)
|
||||
g_object_notify_queue_thaw (object, nqueue);
|
||||
|
||||
if (unref_class)
|
||||
g_type_class_unref (unref_class);
|
||||
|
||||
|
Reference in New Issue
Block a user