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:
Ryan Lortie
2007-04-03 10:44:30 +00:00
committed by Tim Janik
parent e3562e543a
commit dac885cba5
3 changed files with 28 additions and 4 deletions

View File

@@ -87,10 +87,11 @@ struct _GObjectClass
GSList *construct_properties;
/*< public >*/
/* overridable methods */
/* seldomly overidden */
GObject* (*constructor) (GType type,
guint n_construct_properties,
GObjectConstructParam *construct_properties);
/* overridable methods */
void (*set_property) (GObject *object,
guint property_id,
const GValue *value,
@@ -101,18 +102,20 @@ struct _GObjectClass
GParamSpec *pspec);
void (*dispose) (GObject *object);
void (*finalize) (GObject *object);
/* seldomly overidden */
void (*dispatch_properties_changed) (GObject *object,
guint n_pspecs,
GParamSpec **pspecs);
/* signals */
void (*notify) (GObject *object,
GParamSpec *pspec);
/* called when done constructing */
void (*constructed) (GObject *object);
/*< private >*/
/* padding */
gpointer pdummy[8];
gpointer pdummy[7];
};
struct _GObjectConstructParam
{