? gobject/actual-abi
? gobject/expected-abi
Index: gobject/gobject.c
===================================================================
RCS file: /cvs/gnome/glib/gobject/gobject.c,v
retrieving revision 1.67
diff -u -p -d -r1.67 gobject.c
--- gobject/gobject.c	5 May 2005 14:57:29 -0000	1.67
+++ gobject/gobject.c	28 May 2005 22:20:36 -0000
@@ -844,9 +844,10 @@ object_in_construction (GObject *object)
 }
 
 gpointer
-g_object_newv (GType       object_type,
-	       guint       n_parameters,
-	       GParameter *parameters)
+g_object_newv_with_data (GType        object_type,
+                         guint        n_parameters,
+                         GParameter  *parameters,
+                         GData      **datalist)
 {
   GObjectConstructParam *cparams, *oparams;
   GObjectNotifyQueue *nqueue;
@@ -946,7 +947,10 @@ g_object_newv (GType       object_type,
     }
 
   /* construct object from construction parameters */
-  object = class->constructor (object_type, n_total_cparams, cparams);
+  if (class->constructor_full)
+    object = class->constructor_full (object_type, object_type, n_total_cparams, cparams, datalist);
+  else
+    object = class->constructor (object_type, n_total_cparams, cparams);
   G_LOCK (construct_objects_lock);
   construct_objects = g_slist_remove (construct_objects, object);
   G_UNLOCK (construct_objects_lock);
@@ -973,6 +977,14 @@ g_object_newv (GType       object_type,
   g_object_notify_queue_thaw (object, nqueue);
   
   return object;
+}
+
+gpointer
+g_object_newv (GType       object_type,
+	       guint       n_parameters,
+	       GParameter *parameters)
+{
+  return g_object_newv_with_data (object_type, n_parameters, parameters, NULL);
 }
 
 GObject*
Index: gobject/gobject.h
===================================================================
RCS file: /cvs/gnome/glib/gobject/gobject.h,v
retrieving revision 1.31
diff -u -p -d -r1.31 gobject.h
--- gobject/gobject.h	5 May 2005 14:57:29 -0000	1.31
+++ gobject/gobject.h	28 May 2005 22:20:36 -0000
@@ -99,9 +99,16 @@ struct  _GObjectClass
   /* signals */
   void	     (*notify)			(GObject	*object,
 					 GParamSpec	*pspec);
+
+  GObject*   (*constructor_full) (GType                   this_type,
+                                  GType                   leaf_type,
+                                  guint                   n_construct_properties,
+                                  GObjectConstructParam  *construct_properties,
+                                  GData                 **datalist);
+
   /*< private >*/
   /* padding */
-  gpointer	pdummy[8];
+  gpointer	pdummy[7];
 };
 struct _GObjectConstructParam
 {
@@ -135,6 +142,10 @@ gpointer    g_object_new                
 gpointer    g_object_newv		      (GType           object_type,
 					       guint	       n_parameters,
 					       GParameter     *parameters);
+gpointer    g_object_newv_with_data           (GType           object_type,
+					       guint	       n_parameters,
+					       GParameter     *parameters,
+                                               GData         **datalist);
 GObject*    g_object_new_valist               (GType           object_type,
 					       const gchar    *first_property_name,
 					       va_list         var_args);
