[vala/0.10] vapigen: Fix chain up warning in subclasses of generated bindings



commit 11883146053f7ca8c5d264b1d125b64a9ff8ec6e
Author: Jürg Billeter <j bitron ch>
Date:   Sat Aug 21 18:47:40 2010 +0200

    vapigen: Fix chain up warning in subclasses of generated bindings

 vapi/atk.vapi                       |   14 ++++++++++
 vapi/clutter-1.0.vapi               |   22 ++++++++++++++++
 vapi/cogl-1.0.vapi                  |    2 +
 vapi/gconf-2.0.vapi                 |    2 +
 vapi/gdk-2.0.vapi                   |   14 ++++++++++
 vapi/gdk-3.0.vapi                   |   16 +++++++++++
 vapi/gdk-pixbuf-2.0.vapi            |    6 ++++
 vapi/gio-2.0.vapi                   |   44 ++++++++++++++++++++++++++++++++
 vapi/gio-unix-2.0.vapi              |    2 +
 vapi/gnome-vfs-2.0.vapi             |    8 ++++++
 vapi/gobject-2.0.vapi               |    4 +++
 vapi/goocanvas.vapi                 |   42 ++++++++++++++++++++++++++++++
 vapi/gstreamer-0.10.vapi            |   22 ++++++++++++++++
 vapi/gstreamer-audio-0.10.vapi      |   12 ++++++++
 vapi/gstreamer-base-0.10.vapi       |    8 ++++++
 vapi/gstreamer-interfaces-0.10.vapi |   10 +++++++
 vapi/gstreamer-rtp-0.10.vapi        |    6 ++++
 vapi/gstreamer-tag-0.10.vapi        |    2 +
 vapi/gstreamer-video-0.10.vapi      |    4 +++
 vapi/gtk+-2.0.vapi                  |   48 +++++++++++++++++++++++++++++++++++
 vapi/gtk+-3.0.vapi                  |   34 ++++++++++++++++++++++++
 vapi/gtksourceview-2.0.vapi         |   12 ++++++++
 vapi/hildon-fm-2.vapi               |    4 +++
 vapi/libgda-4.0.vapi                |   28 +++++++++++++++++++-
 vapi/libgdata.vapi                  |   20 ++++++++++++++
 vapi/libgnome-2.0.vapi              |    2 +
 vapi/libgsf-1.vapi                  |   12 ++++++++
 vapi/liboobs-1.vapi                 |   42 ++++++++++++++++++++++++++++++
 vapi/libsoup-2.2.vapi               |    2 +
 vapi/libsoup-2.4.vapi               |    6 ++++
 vapi/libwnck-1.0.vapi               |   10 +++++++
 vapi/pango.vapi                     |   12 ++++++++
 vapi/poppler-glib.vapi              |   18 +++++++++++++
 vapi/vte.vapi                       |    2 +
 vapi/webkit-1.0.vapi                |   18 +++++++++++++
 vapigen/valagidlparser.vala         |    9 ++++++
 36 files changed, 518 insertions(+), 1 deletions(-)
---
diff --git a/vapi/atk.vapi b/vapi/atk.vapi
index c81ca5e..55d2375 100644
--- a/vapi/atk.vapi
+++ b/vapi/atk.vapi
@@ -14,11 +14,15 @@ namespace Atk {
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public class GObjectAccessible : Atk.Object {
+		[CCode (has_construct_function = false)]
+		protected GObjectAccessible ();
 		public static unowned Atk.Object for_object (GLib.Object obj);
 		public unowned GLib.Object get_object ();
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public class Hyperlink : GLib.Object, Atk.Action {
+		[CCode (has_construct_function = false)]
+		protected Hyperlink ();
 		public virtual int get_end_index ();
 		public virtual int get_n_anchors ();
 		public virtual unowned Atk.Object get_object (int i);
@@ -51,6 +55,8 @@ namespace Atk {
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public class Misc : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Misc ();
 		public static unowned Atk.Misc get_instance ();
 		public virtual void threads_enter ();
 		public virtual void threads_leave ();
@@ -72,6 +78,8 @@ namespace Atk {
 		public weak string name;
 		public weak Atk.RelationSet relation_set;
 		public Atk.Role role;
+		[CCode (has_construct_function = false)]
+		protected Object ();
 		public bool add_relationship (Atk.RelationType relationship, Atk.Object target);
 		public virtual uint connect_property_change_handler (Atk.PropertyChangeHandler handler);
 		public virtual unowned Atk.AttributeSet get_attributes ();
@@ -137,6 +145,8 @@ namespace Atk {
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public class ObjectFactory : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected ObjectFactory ();
 		public virtual unowned Atk.Object create_accessible (GLib.Object obj);
 		public virtual GLib.Type get_accessible_type ();
 		public virtual void invalidate ();
@@ -160,6 +170,8 @@ namespace Atk {
 	public class Registry : GLib.Object {
 		public weak GLib.HashTable factory_singleton_cache;
 		public weak GLib.HashTable factory_type_registry;
+		[CCode (has_construct_function = false)]
+		protected Registry ();
 		public unowned Atk.ObjectFactory get_factory (GLib.Type type);
 		public GLib.Type get_factory_type (GLib.Type type);
 		public void set_factory_type (GLib.Type type, GLib.Type factory_type);
@@ -235,6 +247,8 @@ namespace Atk {
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public class Util : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Util ();
 		[NoWrapper]
 		public virtual uint add_global_event_listener (GLib.SignalEmissionHook listener, string event_type);
 		[NoWrapper]
diff --git a/vapi/clutter-1.0.vapi b/vapi/clutter-1.0.vapi
index 6282a17..e73918d 100644
--- a/vapi/clutter-1.0.vapi
+++ b/vapi/clutter-1.0.vapi
@@ -76,6 +76,8 @@ namespace Clutter {
 	[CCode (cheader_filename = "clutter/clutter.h")]
 	public class Actor : GLib.InitiallyUnowned, Clutter.Scriptable {
 		public uint32 flags;
+		[CCode (has_construct_function = false)]
+		protected Actor ();
 		public virtual void allocate (Clutter.ActorBox box, Clutter.AllocationFlags flags);
 		public void allocate_available_size (float x, float y, float available_width, float available_height, Clutter.AllocationFlags flags);
 		public void allocate_preferred_size (Clutter.AllocationFlags flags);
@@ -351,6 +353,8 @@ namespace Clutter {
 	}
 	[CCode (cheader_filename = "clutter/clutter.h")]
 	public class Backend : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Backend ();
 		[NoWrapper]
 		public virtual void add_options (GLib.OptionGroup group);
 		[NoWrapper]
@@ -388,6 +392,8 @@ namespace Clutter {
 	}
 	[CCode (cheader_filename = "clutter/clutter.h")]
 	public class Behaviour : GLib.Object, Clutter.Scriptable {
+		[CCode (has_construct_function = false)]
+		protected Behaviour ();
 		public void actors_foreach (Clutter.BehaviourForeachFunc func);
 		[NoWrapper]
 		public virtual void alpha_notify (double alpha_value);
@@ -589,6 +595,8 @@ namespace Clutter {
 	}
 	[CCode (cheader_filename = "clutter/clutter.h")]
 	public class ChildMeta : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected ChildMeta ();
 		public Clutter.Actor actor { get; construct; }
 		public Clutter.Container container { get; construct; }
 	}
@@ -600,6 +608,8 @@ namespace Clutter {
 	}
 	[CCode (cheader_filename = "clutter/clutter.h")]
 	public class DeviceManager : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected DeviceManager ();
 		[NoWrapper]
 		public virtual void add_device (Clutter.InputDevice device);
 		public virtual unowned Clutter.InputDevice get_core_device (Clutter.InputDeviceType device_type);
@@ -696,6 +706,8 @@ namespace Clutter {
 	}
 	[CCode (cheader_filename = "clutter/clutter.h")]
 	public class InputDevice : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected InputDevice ();
 		public void get_device_coords (int x, int y);
 		public int get_device_id ();
 		public unowned string get_device_name ();
@@ -734,6 +746,8 @@ namespace Clutter {
 	[CCode (cheader_filename = "clutter/clutter.h")]
 	public class LayoutManager : GLib.InitiallyUnowned {
 		public void* dummy;
+		[CCode (has_construct_function = false)]
+		protected LayoutManager ();
 		public virtual void allocate (Clutter.Container container, Clutter.ActorBox allocation, Clutter.AllocationFlags flags);
 		public virtual unowned Clutter.Alpha begin_animation (uint duration, ulong mode);
 		public void child_get (Clutter.Container container, Clutter.Actor actor, ...);
@@ -759,6 +773,8 @@ namespace Clutter {
 	public class LayoutMeta : Clutter.ChildMeta {
 		public int32 dummy0;
 		public void* dummy1;
+		[CCode (has_construct_function = false)]
+		protected LayoutMeta ();
 		public unowned Clutter.LayoutManager get_manager ();
 		public Clutter.LayoutManager manager { get; construct; }
 	}
@@ -771,6 +787,8 @@ namespace Clutter {
 	}
 	[CCode (cheader_filename = "clutter/clutter.h")]
 	public class Model : GLib.Object, Clutter.Scriptable {
+		[CCode (has_construct_function = false)]
+		protected Model ();
 		public void append (...);
 		public void appendv ([CCode (array_length_pos = 0.9)] uint[] columns, [CCode (array_length_pos = 0.9)] GLib.Value[] values);
 		public bool filter_iter (Clutter.ModelIter iter);
@@ -810,6 +828,8 @@ namespace Clutter {
 	}
 	[CCode (cheader_filename = "clutter/clutter.h")]
 	public class ModelIter : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected ModelIter ();
 		public virtual unowned Clutter.ModelIter copy ();
 		public void @get (...);
 		public virtual unowned Clutter.Model get_model ();
@@ -1021,6 +1041,8 @@ namespace Clutter {
 	}
 	[CCode (cheader_filename = "clutter/clutter.h")]
 	public class StageManager : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected StageManager ();
 		public static unowned Clutter.StageManager get_default ();
 		public unowned GLib.SList<Clutter.Stage> list_stages ();
 		public unowned GLib.SList<Clutter.Stage> peek_stages ();
diff --git a/vapi/cogl-1.0.vapi b/vapi/cogl-1.0.vapi
index 29ca0a1..715eb26 100644
--- a/vapi/cogl-1.0.vapi
+++ b/vapi/cogl-1.0.vapi
@@ -109,6 +109,8 @@ namespace Cogl {
 	}
 	[CCode (cheader_filename = "cogl/cogl.h")]
 	public class PangoRenderer : Pango.Renderer {
+		[CCode (has_construct_function = false)]
+		protected PangoRenderer ();
 	}
 	[Compact]
 	[CCode (cheader_filename = "cogl/cogl.h")]
diff --git a/vapi/gconf-2.0.vapi b/vapi/gconf-2.0.vapi
index 5294bcf..91d9e27 100644
--- a/vapi/gconf-2.0.vapi
+++ b/vapi/gconf-2.0.vapi
@@ -37,6 +37,8 @@ namespace GConf {
 		public weak GLib.SList notify_list;
 		public int pad2;
 		public int pending_notify_count;
+		[CCode (has_construct_function = false)]
+		protected Client ();
 		public void add_dir (string dir, GConf.ClientPreloadType preload) throws GLib.Error;
 		public GLib.SList<string> all_dirs (string dir) throws GLib.Error;
 		public GLib.SList<GConf.Entry> all_entries (string dir) throws GLib.Error;
diff --git a/vapi/gdk-2.0.vapi b/vapi/gdk-2.0.vapi
index bb5f4d7..567520a 100644
--- a/vapi/gdk-2.0.vapi
+++ b/vapi/gdk-2.0.vapi
@@ -65,6 +65,8 @@ namespace Gdk {
 		public int num_axes;
 		public int num_keys;
 		public Gdk.InputSource source;
+		[CCode (has_construct_function = false)]
+		protected Device ();
 		public static void free_history (Gdk.TimeCoord[] events);
 		public bool get_axis ([CCode (array_length = false)] double[] axes, Gdk.AxisUse use, out double value);
 		public Gdk.AxisUse get_axis_use (uint index);
@@ -104,6 +106,8 @@ namespace Gdk {
 		public weak Gdk.PointerWindowInfo pointer_info;
 		public weak GLib.List queued_events;
 		public weak GLib.List queued_tail;
+		[CCode (has_construct_function = false)]
+		protected Display ();
 		public void add_client_message_filter (Gdk.Atom message_type, Gdk.FilterFunc func);
 		public void beep ();
 		public void close ();
@@ -148,6 +152,8 @@ namespace Gdk {
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class DisplayManager : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected DisplayManager ();
 		public static unowned Gdk.DisplayManager @get ();
 		public unowned Gdk.Display get_default_display ();
 		public GLib.SList<weak Gdk.Display> list_displays ();
@@ -184,6 +190,8 @@ namespace Gdk {
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class Drawable : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Drawable ();
 		public unowned Gdk.Image copy_to_image (Gdk.Image image, int src_x, int src_y, int dest_x, int dest_y, int width, int height);
 		[NoWrapper]
 		public virtual unowned Cairo.Surface create_cairo_surface (int width, int height);
@@ -369,6 +377,8 @@ namespace Gdk {
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class Keymap : GLib.Object {
 		public weak Gdk.Display display;
+		[CCode (has_construct_function = false)]
+		protected Keymap ();
 		public void add_virtual_modifiers (Gdk.ModifierType state);
 		public bool get_caps_lock_state ();
 		public static unowned Gdk.Keymap get_default ();
@@ -461,6 +471,8 @@ namespace Gdk {
 		public weak Gdk.GC[] normal_gcs;
 		[CCode (array_length = false)]
 		public weak Gdk.GC[] subwindow_gcs;
+		[CCode (has_construct_function = false)]
+		protected Screen ();
 		public void broadcast_client_message (Gdk.Event event);
 		public unowned Gdk.Window get_active_window ();
 		public static unowned Gdk.Screen get_default ();
@@ -523,6 +535,8 @@ namespace Gdk {
 		public int red_prec;
 		public int red_shift;
 		public Gdk.VisualType type;
+		[CCode (has_construct_function = false)]
+		protected Visual ();
 		public static unowned Gdk.Visual get_best ();
 		public static int get_best_depth ();
 		public static Gdk.VisualType get_best_type ();
diff --git a/vapi/gdk-3.0.vapi b/vapi/gdk-3.0.vapi
index 8fbcbe5..ff2153b 100644
--- a/vapi/gdk-3.0.vapi
+++ b/vapi/gdk-3.0.vapi
@@ -48,6 +48,8 @@ namespace Gdk {
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class Device : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Device ();
 		public static void free_history (Gdk.TimeCoord[] events);
 		public unowned Gdk.Device get_associated_device ();
 		public bool get_axis ([CCode (array_length = false)] double[] axes, Gdk.AxisUse use, out double value);
@@ -87,6 +89,8 @@ namespace Gdk {
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class DeviceManager : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected DeviceManager ();
 		public unowned Gdk.Display get_display ();
 		public virtual unowned GLib.List list_devices (Gdk.DeviceType type);
 		public Gdk.Display display { get; construct; }
@@ -96,6 +100,8 @@ namespace Gdk {
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class Display : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Display ();
 		public void add_client_message_filter (Gdk.Atom message_type, Gdk.FilterFunc func);
 		public void beep ();
 		public void close ();
@@ -152,6 +158,8 @@ namespace Gdk {
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class DisplayManager : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected DisplayManager ();
 		public static unowned Gdk.DisplayManager @get ();
 		public unowned Gdk.Display get_default_display ();
 		public GLib.SList<weak Gdk.Display> list_displays ();
@@ -180,6 +188,8 @@ namespace Gdk {
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class Drawable : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Drawable ();
 		public unowned Gdk.Image copy_to_image (Gdk.Image image, int src_x, int src_y, int dest_x, int dest_y, int width, int height);
 		[NoWrapper]
 		public virtual unowned Cairo.Surface create_cairo_surface (int width, int height);
@@ -348,6 +358,8 @@ namespace Gdk {
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class Keymap : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Keymap ();
 		public void add_virtual_modifiers (Gdk.ModifierType state);
 		public bool get_caps_lock_state ();
 		public static unowned Gdk.Keymap get_default ();
@@ -446,6 +458,8 @@ namespace Gdk {
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class Screen : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Screen ();
 		public void broadcast_client_message (Gdk.Event event);
 		public unowned Gdk.Window get_active_window ();
 		public static unowned Gdk.Screen get_default ();
@@ -494,6 +508,8 @@ namespace Gdk {
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class Visual : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Visual ();
 		public static unowned Gdk.Visual get_best ();
 		public static int get_best_depth ();
 		public static Gdk.VisualType get_best_type ();
diff --git a/vapi/gdk-pixbuf-2.0.vapi b/vapi/gdk-pixbuf-2.0.vapi
index 4566734..54bbe1a 100644
--- a/vapi/gdk-pixbuf-2.0.vapi
+++ b/vapi/gdk-pixbuf-2.0.vapi
@@ -70,6 +70,8 @@ namespace Gdk {
 	[CCode (cheader_filename = "gdk-pixbuf/gdk-pixdata.h")]
 	public class PixbufAnimation : GLib.Object {
 		[CCode (has_construct_function = false)]
+		protected PixbufAnimation ();
+		[CCode (has_construct_function = false)]
 		public PixbufAnimation.from_file (string filename) throws GLib.Error;
 		public int get_height ();
 		public unowned Gdk.PixbufAnimationIter get_iter (GLib.TimeVal start_time);
@@ -79,6 +81,8 @@ namespace Gdk {
 	}
 	[CCode (cheader_filename = "gdk-pixbuf/gdk-pixdata.h")]
 	public class PixbufAnimationIter : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected PixbufAnimationIter ();
 		public bool advance (GLib.TimeVal current_time);
 		public int get_delay_time ();
 		public unowned Gdk.Pixbuf get_pixbuf ();
@@ -131,6 +135,8 @@ namespace Gdk {
 	}
 	[CCode (cheader_filename = "gdk-pixbuf/gdk-pixdata.h")]
 	public class PixbufSimpleAnimIter : Gdk.PixbufAnimationIter {
+		[CCode (has_construct_function = false)]
+		protected PixbufSimpleAnimIter ();
 	}
 	[CCode (type_id = "GDK_TYPE_PIXDATA", cheader_filename = "gdk-pixbuf/gdk-pixdata.h")]
 	public struct Pixdata {
diff --git a/vapi/gio-2.0.vapi b/vapi/gio-2.0.vapi
index 2ed05c8..c668fa3 100644
--- a/vapi/gio-2.0.vapi
+++ b/vapi/gio-2.0.vapi
@@ -402,6 +402,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class DBusServer : GLib.Object, GLib.Initable {
+		[CCode (has_construct_function = false)]
+		protected DBusServer ();
 		public unowned string get_client_address ();
 		public GLib.DBusServerFlags get_flags ();
 		public unowned string get_guid ();
@@ -531,6 +533,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class FileEnumerator : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected FileEnumerator ();
 		public bool close (GLib.Cancellable? cancellable = null) throws GLib.Error;
 		public virtual async bool close_async (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[NoWrapper]
@@ -545,6 +549,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class FileIOStream : GLib.IOStream, GLib.Seekable {
+		[CCode (has_construct_function = false)]
+		protected FileIOStream ();
 		[NoWrapper]
 		public virtual bool can_seek ();
 		[NoWrapper]
@@ -640,6 +646,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class FileInputStream : GLib.InputStream, GLib.Seekable {
+		[CCode (has_construct_function = false)]
+		protected FileInputStream ();
 		[NoWrapper]
 		public virtual bool can_seek ();
 		public virtual unowned GLib.FileInfo query_info (string attributes, GLib.Cancellable? cancellable = null) throws GLib.Error;
@@ -651,6 +659,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class FileMonitor : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected FileMonitor ();
 		public virtual bool cancel ();
 		public void emit_event (GLib.File child, GLib.File other_file, GLib.FileMonitorEvent event_type);
 		public bool is_cancelled ();
@@ -663,6 +673,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class FileOutputStream : GLib.OutputStream, GLib.Seekable {
+		[CCode (has_construct_function = false)]
+		protected FileOutputStream ();
 		[NoWrapper]
 		public virtual bool can_seek ();
 		[NoWrapper]
@@ -688,6 +700,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class FilterInputStream : GLib.InputStream {
+		[CCode (has_construct_function = false)]
+		protected FilterInputStream ();
 		public unowned GLib.InputStream get_base_stream ();
 		public bool get_close_base_stream ();
 		public void set_close_base_stream (bool close_base);
@@ -696,6 +710,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class FilterOutputStream : GLib.OutputStream {
+		[CCode (has_construct_function = false)]
+		protected FilterOutputStream ();
 		public unowned GLib.OutputStream get_base_stream ();
 		public bool get_close_base_stream ();
 		public void set_close_base_stream (bool close_base);
@@ -741,6 +757,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class IOStream : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected IOStream ();
 		public void clear_pending ();
 		public bool close (GLib.Cancellable? cancellable = null) throws GLib.Error;
 		public virtual async bool close_async (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
@@ -759,6 +777,8 @@ namespace GLib {
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class InetAddress : GLib.Object {
 		[CCode (has_construct_function = false)]
+		protected InetAddress ();
+		[CCode (has_construct_function = false)]
 		public InetAddress.any (GLib.SocketFamily family);
 		[CCode (has_construct_function = false)]
 		public InetAddress.from_bytes (uchar bytes, GLib.SocketFamily family);
@@ -806,6 +826,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class InputStream : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected InputStream ();
 		public void clear_pending ();
 		public bool close (GLib.Cancellable? cancellable = null) throws GLib.Error;
 		public virtual async bool close_async (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
@@ -882,6 +904,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class NativeVolumeMonitor : GLib.VolumeMonitor {
+		[CCode (has_construct_function = false)]
+		protected NativeVolumeMonitor ();
 		[NoWrapper]
 		public virtual unowned GLib.Mount get_mount_for_mount_path (string mount_path, GLib.Cancellable? cancellable = null);
 	}
@@ -908,6 +932,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class OutputStream : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected OutputStream ();
 		public void clear_pending ();
 		public bool close (GLib.Cancellable? cancellable = null) throws GLib.Error;
 		public virtual async bool close_async (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
@@ -935,6 +961,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class Permission : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Permission ();
 		public virtual bool acquire (GLib.Cancellable? cancellable = null) throws GLib.Error;
 		public virtual async bool acquire_async (GLib.Cancellable? cancellable = null) throws GLib.Error;
 		public bool get_allowed ();
@@ -949,6 +977,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class Resolver : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Resolver ();
 		public static GLib.Quark error_quark ();
 		public static unowned GLib.Resolver get_default ();
 		public virtual unowned string lookup_by_address (GLib.InetAddress address, GLib.Cancellable? cancellable = null) throws GLib.Error;
@@ -1108,6 +1138,8 @@ namespace GLib {
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class SocketAddress : GLib.Object, GLib.SocketConnectable {
 		[CCode (has_construct_function = false)]
+		protected SocketAddress ();
+		[CCode (has_construct_function = false)]
 		public SocketAddress.from_native (void* native, size_t len);
 		public virtual GLib.SocketFamily get_family ();
 		public virtual ssize_t get_native_size ();
@@ -1116,6 +1148,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class SocketAddressEnumerator : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected SocketAddressEnumerator ();
 		public virtual unowned GLib.SocketAddress next (GLib.Cancellable? cancellable = null) throws GLib.Error;
 		public virtual async unowned GLib.SocketAddress next_async (GLib.Cancellable? cancellable = null) throws GLib.Error;
 	}
@@ -1145,6 +1179,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class SocketConnection : GLib.IOStream {
+		[CCode (has_construct_function = false)]
+		protected SocketConnection ();
 		public static unowned GLib.SocketConnection factory_create_connection (GLib.Socket socket);
 		public static GLib.Type factory_lookup_type (GLib.SocketFamily family, GLib.SocketType type, int protocol_id);
 		public static void factory_register_type (GLib.Type g_type, GLib.SocketFamily family, GLib.SocketType type, int protocol);
@@ -1155,6 +1191,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class SocketControlMessage : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected SocketControlMessage ();
 		public virtual unowned GLib.SocketControlMessage deserialize (int level, int type, size_t size, void* data);
 		public virtual int get_level ();
 		public int get_msg_type ();
@@ -1211,6 +1249,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class TcpConnection : GLib.SocketConnection {
+		[CCode (has_construct_function = false)]
+		protected TcpConnection ();
 		public bool get_graceful_disconnect ();
 		public void set_graceful_disconnect (bool graceful_disconnect);
 		public bool graceful_disconnect { get; set; }
@@ -1255,6 +1295,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class Vfs : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Vfs ();
 		[NoWrapper]
 		public virtual void add_writable_namespaces (GLib.FileAttributeInfoList list);
 		public static unowned GLib.Vfs get_default ();
@@ -1275,6 +1317,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class VolumeMonitor : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected VolumeMonitor ();
 		public virtual unowned GLib.Volume adopt_orphan_mount (GLib.Mount mount);
 		public static GLib.VolumeMonitor @get ();
 		public virtual GLib.List<GLib.Drive> get_connected_drives ();
diff --git a/vapi/gio-unix-2.0.vapi b/vapi/gio-unix-2.0.vapi
index b8bbd7b..8676ead 100644
--- a/vapi/gio-unix-2.0.vapi
+++ b/vapi/gio-unix-2.0.vapi
@@ -16,6 +16,8 @@ namespace GLib {
 	}
 	[CCode (cheader_filename = "gio/gunixconnection.h")]
 	public class UnixConnection : GLib.SocketConnection {
+		[CCode (has_construct_function = false)]
+		protected UnixConnection ();
 		public unowned GLib.Credentials receive_credentials (GLib.Cancellable cancellable) throws GLib.Error;
 		public int receive_fd (GLib.Cancellable cancellable) throws GLib.Error;
 		public bool send_credentials (GLib.Cancellable cancellable) throws GLib.Error;
diff --git a/vapi/gnome-vfs-2.0.vapi b/vapi/gnome-vfs-2.0.vapi
index eaaccd3..5a85c25 100644
--- a/vapi/gnome-vfs-2.0.vapi
+++ b/vapi/gnome-vfs-2.0.vapi
@@ -117,6 +117,8 @@ namespace GnomeVFS {
 	}
 	[CCode (type_check_function = "GNOME_IS_VFS_DRIVE", cheader_filename = "libgnomevfs/gnome-vfs.h")]
 	public class Drive : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Drive ();
 		public int compare (GnomeVFS.Drive b);
 		public void eject (GnomeVFS.VolumeOpCallback callback);
 		public unowned string get_activation_uri ();
@@ -218,6 +220,8 @@ namespace GnomeVFS {
 	}
 	[CCode (cheader_filename = "libgnomevfs/gnome-vfs.h")]
 	public class MIMEMonitor : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected MIMEMonitor ();
 		public static unowned GnomeVFS.MIMEMonitor @get ();
 		public virtual signal void data_changed ();
 	}
@@ -505,6 +509,8 @@ namespace GnomeVFS {
 	}
 	[CCode (type_check_function = "GNOME_IS_VFS_VOLUME", cheader_filename = "libgnomevfs/gnome-vfs.h")]
 	public class Volume : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Volume ();
 		public int compare (GnomeVFS.Volume b);
 		public void eject (GnomeVFS.VolumeOpCallback callback);
 		public unowned string get_activation_uri ();
@@ -527,6 +533,8 @@ namespace GnomeVFS {
 	}
 	[CCode (type_check_function = "GNOME_IS_VFS_VOLUME_MONITOR", cheader_filename = "libgnomevfs/gnome-vfs.h")]
 	public class VolumeMonitor : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected VolumeMonitor ();
 		public GLib.List<GnomeVFS.Drive> get_connected_drives ();
 		public unowned GnomeVFS.Drive get_drive_by_id (ulong id);
 		public unowned GLib.List get_mounted_volumes ();
diff --git a/vapi/gobject-2.0.vapi b/vapi/gobject-2.0.vapi
index 53d31b3..873e2d5 100644
--- a/vapi/gobject-2.0.vapi
+++ b/vapi/gobject-2.0.vapi
@@ -104,6 +104,8 @@ namespace GLib {
 
 	[CCode (lower_case_csuffix = "type_module")]
 	public class TypeModule : Object, TypePlugin {
+		[CCode (has_construct_function = false)]
+		protected TypeModule ();
 		public bool use ();
 		public void unuse ();
 		public void set_name (string name);
@@ -360,6 +362,8 @@ namespace GLib {
 
 	[CCode (ref_sink_function = "g_object_ref_sink")]
 	public class InitiallyUnowned : Object {
+		[CCode (has_construct_function = false)]
+		protected InitiallyUnowned ();
 	}
 
 	[CCode (cname = "int")]
diff --git a/vapi/goocanvas.vapi b/vapi/goocanvas.vapi
index 4bd8af2..b1fd179 100644
--- a/vapi/goocanvas.vapi
+++ b/vapi/goocanvas.vapi
@@ -103,6 +103,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasEllipse : Goo.CanvasItemSimple, Goo.CanvasItem {
+		[CCode (has_construct_function = false)]
+		protected CanvasEllipse ();
 		[CCode (cname = "goo_canvas_ellipse_new")]
 		public static unowned Goo.CanvasEllipse create (Goo.CanvasItem? parent, double center_x, double center_y, double radius_x, double radius_y, ...);
 		[NoAccessorMethod]
@@ -124,6 +126,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasEllipseModel : Goo.CanvasItemModelSimple, Goo.CanvasItemModel {
+		[CCode (has_construct_function = false)]
+		protected CanvasEllipseModel ();
 		[CCode (cname = "goo_canvas_ellipse_model_new")]
 		public static unowned Goo.CanvasEllipseModel create (Goo.CanvasItemModel? parent, double center_x, double center_y, double radius_x, double radius_y, ...);
 		[NoAccessorMethod]
@@ -145,6 +149,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasGrid : Goo.CanvasItemSimple, Goo.CanvasItem {
+		[CCode (has_construct_function = false)]
+		protected CanvasGrid ();
 		[CCode (cname = "goo_canvas_grid_new")]
 		public static unowned Goo.CanvasGrid create (Goo.CanvasItem? parent, double x, double y, double width, double height, double x_step, double y_step, double x_offset, double y_offset, ...);
 		[NoAccessorMethod]
@@ -202,6 +208,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasGridModel : Goo.CanvasItemModelSimple, Goo.CanvasItemModel {
+		[CCode (has_construct_function = false)]
+		protected CanvasGridModel ();
 		[CCode (cname = "goo_canvas_grid_model_new")]
 		public static unowned Goo.CanvasGridModel create (Goo.CanvasItemModel? parent, double x, double y, double width, double height, double x_step, double y_step, double x_offset, double y_offset, ...);
 		[NoAccessorMethod]
@@ -259,6 +267,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasGroup : Goo.CanvasItemSimple, Goo.CanvasItem {
+		[CCode (has_construct_function = false)]
+		protected CanvasGroup ();
 		[CCode (cname = "goo_canvas_group_new")]
 		public static unowned Goo.CanvasGroup create (Goo.CanvasItem? parent, ...);
 		[NoAccessorMethod]
@@ -272,6 +282,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasGroupModel : Goo.CanvasItemModelSimple, Goo.CanvasItemModel {
+		[CCode (has_construct_function = false)]
+		protected CanvasGroupModel ();
 		[CCode (cname = "goo_canvas_group_model_new")]
 		public static unowned Goo.CanvasGroupModel create (Goo.CanvasItemModel? parent, ...);
 		[NoAccessorMethod]
@@ -285,6 +297,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasImage : Goo.CanvasItemSimple, Goo.CanvasItem {
+		[CCode (has_construct_function = false)]
+		protected CanvasImage ();
 		[CCode (cname = "goo_canvas_image_new")]
 		public static unowned Goo.CanvasImage create (Goo.CanvasItem? parent, Gdk.Pixbuf pixbuf, double x, double y, ...);
 		[NoAccessorMethod]
@@ -304,6 +318,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasImageModel : Goo.CanvasItemModelSimple, Goo.CanvasItemModel {
+		[CCode (has_construct_function = false)]
+		protected CanvasImageModel ();
 		[CCode (cname = "goo_canvas_image_model_new")]
 		public static unowned Goo.CanvasImageModel create (Goo.CanvasItemModel? parent, Gdk.Pixbuf pixbuf, double x, double y, ...);
 		[NoAccessorMethod]
@@ -325,6 +341,8 @@ namespace Goo {
 	public class CanvasItemModelSimple : GLib.Object, Goo.CanvasItemModel {
 		public weak Goo.CanvasItemModel parent;
 		public Goo.CanvasItemSimpleData simple_data;
+		[CCode (has_construct_function = false)]
+		protected CanvasItemModelSimple ();
 		[NoAccessorMethod]
 		public Goo.CairoAntialias antialias { get; set; }
 		[NoAccessorMethod]
@@ -377,6 +395,8 @@ namespace Goo {
 		public uint need_update;
 		public weak Goo.CanvasItem parent;
 		public Goo.CanvasItemSimpleData simple_data;
+		[CCode (has_construct_function = false)]
+		protected CanvasItemSimple ();
 		public void changed (bool recompute_bounds);
 		public bool check_in_path (double x, double y, Cairo.Context cr, Goo.CanvasPointerEvents pointer_events);
 		public void check_style ();
@@ -450,6 +470,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasPath : Goo.CanvasItemSimple, Goo.CanvasItem {
+		[CCode (has_construct_function = false)]
+		protected CanvasPath ();
 		[CCode (cname = "goo_canvas_path_new")]
 		public static unowned Goo.CanvasPath create (Goo.CanvasItem? parent, string path_data, ...);
 		[NoAccessorMethod]
@@ -465,6 +487,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasPathModel : Goo.CanvasItemModelSimple, Goo.CanvasItemModel {
+		[CCode (has_construct_function = false)]
+		protected CanvasPathModel ();
 		[CCode (cname = "goo_canvas_path_model_new")]
 		public static unowned Goo.CanvasPathModel create (Goo.CanvasItemModel? parent, string path_data, ...);
 		[NoAccessorMethod]
@@ -489,6 +513,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasPolyline : Goo.CanvasItemSimple, Goo.CanvasItem {
+		[CCode (has_construct_function = false)]
+		protected CanvasPolyline ();
 		[CCode (cname = "goo_canvas_polyline_new")]
 		public static unowned Goo.CanvasPolyline create (Goo.CanvasItem? parent, bool close_path, int num_points, ...);
 		[CCode (cname = "goo_canvas_polyline_new_line")]
@@ -533,6 +559,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasPolylineModel : Goo.CanvasItemModelSimple, Goo.CanvasItemModel {
+		[CCode (has_construct_function = false)]
+		protected CanvasPolylineModel ();
 		[CCode (cname = "goo_canvas_polyline_model_new")]
 		public static unowned Goo.CanvasPolylineModel create (Goo.CanvasItemModel? parent, bool close_path, int num_points, ...);
 		[CCode (cname = "goo_canvas_polyline_model_new_line")]
@@ -562,6 +590,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasRect : Goo.CanvasItemSimple, Goo.CanvasItem {
+		[CCode (has_construct_function = false)]
+		protected CanvasRect ();
 		[CCode (cname = "goo_canvas_rect_new")]
 		public static unowned Goo.CanvasRect create (Goo.CanvasItem? parent, double x, double y, double width, double height, ...);
 		[NoAccessorMethod]
@@ -579,6 +609,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasRectModel : Goo.CanvasItemModelSimple, Goo.CanvasItemModel {
+		[CCode (has_construct_function = false)]
+		protected CanvasRectModel ();
 		[CCode (cname = "goo_canvas_rect_model_new")]
 		public static unowned Goo.CanvasRectModel create (Goo.CanvasItemModel? parent, double x, double y, double width, double height, ...);
 		[NoAccessorMethod]
@@ -610,6 +642,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasTable : Goo.CanvasGroup, Goo.CanvasItem {
+		[CCode (has_construct_function = false)]
+		protected CanvasTable ();
 		[CCode (cname = "goo_canvas_table_new")]
 		public static unowned Goo.CanvasTable create (Goo.CanvasItem? parent, ...);
 		[NoAccessorMethod]
@@ -631,6 +665,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasTableModel : Goo.CanvasGroupModel, Goo.CanvasItemModel {
+		[CCode (has_construct_function = false)]
+		protected CanvasTableModel ();
 		[CCode (cname = "goo_canvas_table_model_new")]
 		public static unowned Goo.CanvasTableModel create (Goo.CanvasItemModel? parent, ...);
 		[NoAccessorMethod]
@@ -652,6 +688,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasText : Goo.CanvasItemSimple, Goo.CanvasItem {
+		[CCode (has_construct_function = false)]
+		protected CanvasText ();
 		[CCode (cname = "goo_canvas_text_new")]
 		public static unowned Goo.CanvasText create (Goo.CanvasItem? parent, string str, double x, double y, double width, Gtk.AnchorType anchor, ...);
 		public void get_natural_extents (out unowned Pango.Rectangle? ink_rect, out unowned Pango.Rectangle? logical_rect);
@@ -678,6 +716,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasTextModel : Goo.CanvasItemModelSimple, Goo.CanvasItemModel {
+		[CCode (has_construct_function = false)]
+		protected CanvasTextModel ();
 		[CCode (cname = "goo_canvas_text_model_new")]
 		public static unowned Goo.CanvasTextModel create (Goo.CanvasItemModel? parent, string str, double x, double y, double width, Gtk.AnchorType anchor, ...);
 		[NoAccessorMethod]
@@ -703,6 +743,8 @@ namespace Goo {
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasWidget : Goo.CanvasItemSimple, Goo.CanvasItem {
+		[CCode (has_construct_function = false)]
+		protected CanvasWidget ();
 		[CCode (cname = "goo_canvas_widget_new")]
 		public static unowned Goo.CanvasWidget create (Goo.CanvasItem? parent, Gtk.Widget widget, double x, double y, double width, double height, ...);
 		[NoAccessorMethod]
diff --git a/vapi/gstreamer-0.10.vapi b/vapi/gstreamer-0.10.vapi
index 86f6313..99ff775 100644
--- a/vapi/gstreamer-0.10.vapi
+++ b/vapi/gstreamer-0.10.vapi
@@ -242,6 +242,8 @@ namespace Gst {
 		public int time_index;
 		[CCode (array_length = false)]
 		public weak Gst.ClockTime[] times;
+		[CCode (has_construct_function = false)]
+		protected Clock ();
 		public bool add_observation (Gst.ClockTime slave, Gst.ClockTime master, out double r_squared);
 		public Gst.ClockTime adjust_unlocked (Gst.ClockTime @internal);
 		[NoWrapper]
@@ -363,6 +365,8 @@ namespace Gst {
 		public void* state_lock;
 		[CCode (cname = "abidata.ABI.target_state")]
 		public Gst.State target_state;
+		[CCode (has_construct_function = false)]
+		protected Element ();
 		public void abort_state ();
 		public bool add_pad (owned Gst.Pad pad);
 		[CCode (cname = "gst_element_class_add_pad_template")]
@@ -448,6 +452,8 @@ namespace Gst {
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class ElementFactory : Gst.PluginFeature {
+		[CCode (has_construct_function = false)]
+		protected ElementFactory ();
 		public bool can_sink_caps (Gst.Caps caps);
 		public bool can_src_caps (Gst.Caps caps);
 		public Gst.Element? create (string? name);
@@ -750,6 +756,8 @@ namespace Gst {
 		public weak GLib.Mutex @lock;
 		public weak string name_prefix;
 		public weak Gst.Object parent;
+		[CCode (has_construct_function = false)]
+		protected Object ();
 		public static bool check_uniqueness (GLib.List<Gst.Object> list, string name);
 		public static void default_deep_notify (GLib.Object object, Gst.Object orig, GLib.ParamSpec pspec, string? excluded_props);
 		public void default_error (GLib.Error error, string? debug);
@@ -981,6 +989,8 @@ namespace Gst {
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class Plugin : Gst.Object {
+		[CCode (has_construct_function = false)]
+		protected Plugin ();
 		public void add_dependency ([CCode (array_length = false)] string?[] env_vars, [CCode (array_length = false)] string?[] paths, [CCode (array_length = false)] string?[] names, Gst.PluginDependencyFlags flags);
 		public void add_dependency_simple (string? env_vars, string? paths, string? names, Gst.PluginDependencyFlags flags);
 		public static GLib.Quark error_quark ();
@@ -1006,6 +1016,8 @@ namespace Gst {
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public abstract class PluginFeature : Gst.Object {
+		[CCode (has_construct_function = false)]
+		protected PluginFeature ();
 		public bool check_version (uint min_major, uint min_minor, uint min_micro);
 		public unowned string get_name ();
 		public uint get_rank ();
@@ -1033,6 +1045,8 @@ namespace Gst {
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class ProxyPad : Gst.Pad {
+		[CCode (has_construct_function = false)]
+		protected ProxyPad ();
 	}
 	[CCode (ref_function = "gst_query_ref", unref_function = "gst_query_unref", cheader_filename = "gst/gst.h")]
 	public class Query : Gst.MiniObject {
@@ -1092,6 +1106,8 @@ namespace Gst {
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class Registry : Gst.Object {
+		[CCode (has_construct_function = false)]
+		protected Registry ();
 		public bool add_feature (owned Gst.PluginFeature feature);
 		public void add_path (string path);
 		public bool add_plugin (owned Gst.Plugin plugin);
@@ -1211,6 +1227,8 @@ namespace Gst {
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class SystemClock : Gst.Clock {
+		[CCode (has_construct_function = false)]
+		protected SystemClock ();
 		public static Gst.Clock obtain ();
 		[NoAccessorMethod]
 		public Gst.ClockType clock_type { get; set; }
@@ -1279,6 +1297,8 @@ namespace Gst {
 		public void* @lock;
 		public bool running;
 		public Gst.TaskState state;
+		[CCode (has_construct_function = false)]
+		protected Task ();
 		public static void cleanup_all ();
 		public static unowned Gst.Task create (Gst.TaskFunction func, void* data);
 		public unowned Gst.TaskPool get_pool ();
@@ -1355,6 +1375,8 @@ namespace Gst {
 		public weak Gst.TypeFindFunction function;
 		public void* user_data;
 		public weak GLib.DestroyNotify user_data_notify;
+		[CCode (has_construct_function = false)]
+		protected TypeFindFactory ();
 		[CCode (cname = "gst_type_find_factory_call_function")]
 		public void call_function (Gst.TypeFind find);
 		[CCode (cname = "gst_type_find_factory_get_caps")]
diff --git a/vapi/gstreamer-audio-0.10.vapi b/vapi/gstreamer-audio-0.10.vapi
index d87c77e..444b908 100644
--- a/vapi/gstreamer-audio-0.10.vapi
+++ b/vapi/gstreamer-audio-0.10.vapi
@@ -17,6 +17,8 @@ namespace Gst {
 	[CCode (cheader_filename = "gst/audio/gstaudiofilter.h")]
 	public class AudioFilter : Gst.BaseTransform {
 		public weak Gst.RingBufferSpec format;
+		[CCode (has_construct_function = false)]
+		protected AudioFilter ();
 		[CCode (cname = "gst_audio_filter_class_add_pad_templates")]
 		public class void add_pad_templates (Gst.Caps allowed_caps);
 		[NoWrapper]
@@ -25,6 +27,8 @@ namespace Gst {
 	[CCode (cheader_filename = "gst/audio/gstaudiosink.h")]
 	public class AudioSink : Gst.BaseAudioSink {
 		public weak GLib.Thread thread;
+		[CCode (has_construct_function = false)]
+		protected AudioSink ();
 		[NoWrapper]
 		public virtual bool close ();
 		[NoWrapper]
@@ -43,6 +47,8 @@ namespace Gst {
 	[CCode (cheader_filename = "gst/audio/gstaudiosrc.h")]
 	public class AudioSrc : Gst.BaseAudioSrc {
 		public weak GLib.Thread thread;
+		[CCode (has_construct_function = false)]
+		protected AudioSrc ();
 		[NoWrapper]
 		public virtual bool close ();
 		[NoWrapper]
@@ -63,6 +69,8 @@ namespace Gst {
 		public uint64 next_sample;
 		public weak Gst.Clock provided_clock;
 		public weak Gst.RingBuffer ringbuffer;
+		[CCode (has_construct_function = false)]
+		protected BaseAudioSink ();
 		public virtual unowned Gst.RingBuffer create_ringbuffer ();
 		public bool get_provide_clock ();
 		public Gst.BaseAudioSinkSlaveMethod get_slave_method ();
@@ -84,6 +92,8 @@ namespace Gst {
 		public weak Gst.Clock clock;
 		public uint64 next_sample;
 		public weak Gst.RingBuffer ringbuffer;
+		[CCode (has_construct_function = false)]
+		protected BaseAudioSrc ();
 		public virtual unowned Gst.RingBuffer create_ringbuffer ();
 		public bool get_provide_clock ();
 		public Gst.BaseAudioSrcSlaveMethod get_slave_method ();
@@ -117,6 +127,8 @@ namespace Gst {
 		public weak Gst.RingBufferSpec spec;
 		public int state;
 		public int waiting;
+		[CCode (has_construct_function = false)]
+		protected RingBuffer ();
 		public virtual bool acquire (Gst.RingBufferSpec spec);
 		public virtual bool activate (bool active);
 		public void advance (uint advance);
diff --git a/vapi/gstreamer-base-0.10.vapi b/vapi/gstreamer-base-0.10.vapi
index 4bcca86..4195244 100644
--- a/vapi/gstreamer-base-0.10.vapi
+++ b/vapi/gstreamer-base-0.10.vapi
@@ -41,6 +41,8 @@ namespace Gst {
 		public int preroll_queued;
 		public Gst.Segment segment;
 		public Gst.Pad sinkpad;
+		[CCode (has_construct_function = false)]
+		protected BaseSink ();
 		[NoWrapper]
 		public virtual bool activate_pull (bool active);
 		[NoWrapper]
@@ -123,6 +125,8 @@ namespace Gst {
 		public Gst.Segment segment;
 		public uint64 size;
 		public Gst.Pad srcpad;
+		[CCode (has_construct_function = false)]
+		protected BaseSrc ();
 		[NoWrapper]
 		public virtual bool check_get_range ();
 		[NoWrapper]
@@ -196,6 +200,8 @@ namespace Gst {
 		public GLib.Mutex transform_lock;
 		public const string SINK_NAME;
 		public const string SRC_NAME;
+		[CCode (has_construct_function = false)]
+		protected BaseTransform ();
 		[NoWrapper]
 		public virtual void before_transform (Gst.Buffer buffer);
 		[NoWrapper]
@@ -483,6 +489,8 @@ namespace Gst {
 	}
 	[CCode (cheader_filename = "gst/base/gstpushsrc.h")]
 	public class PushSrc : Gst.BaseSrc {
+		[CCode (has_construct_function = false)]
+		protected PushSrc ();
 		[NoWrapper]
 		public virtual Gst.FlowReturn create (out unowned Gst.Buffer buf);
 	}
diff --git a/vapi/gstreamer-interfaces-0.10.vapi b/vapi/gstreamer-interfaces-0.10.vapi
index f8fe9c4..57d930c 100644
--- a/vapi/gstreamer-interfaces-0.10.vapi
+++ b/vapi/gstreamer-interfaces-0.10.vapi
@@ -7,15 +7,21 @@ namespace Gst {
 		public weak string label;
 		public int max_value;
 		public int min_value;
+		[CCode (has_construct_function = false)]
+		protected ColorBalanceChannel ();
 		public virtual signal void value_changed (int value);
 	}
 	[CCode (cheader_filename = "gst/interfaces/mixer.h")]
 	public class MixerOptions : Gst.MixerTrack {
+		[CCode (has_construct_function = false)]
+		protected MixerOptions ();
 		public unowned GLib.List<string> get_values ();
 		public static void list_changed (Gst.Mixer mixer, Gst.MixerOptions opts);
 	}
 	[CCode (cheader_filename = "gst/interfaces/mixer.h")]
 	public class MixerTrack : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected MixerTrack ();
 		[NoAccessorMethod]
 		public uint flags { get; }
 		[NoAccessorMethod]
@@ -40,6 +46,8 @@ namespace Gst {
 		public int max_signal;
 		public ulong min_frequency;
 		public int min_signal;
+		[CCode (has_construct_function = false)]
+		protected TunerChannel ();
 		public static void changed (Gst.Tuner tuner, Gst.TunerChannel channel);
 		public virtual signal void frequency_changed (ulong frequency);
 		public virtual signal void signal_changed (int @signal);
@@ -48,6 +56,8 @@ namespace Gst {
 	public class TunerNorm : GLib.Object {
 		public Gst.Value framerate;
 		public weak string label;
+		[CCode (has_construct_function = false)]
+		protected TunerNorm ();
 		public static void changed (Gst.Tuner tuner, Gst.TunerNorm norm);
 	}
 	[CCode (cheader_filename = "gst/interfaces/colorbalance.h")]
diff --git a/vapi/gstreamer-rtp-0.10.vapi b/vapi/gstreamer-rtp-0.10.vapi
index e7b36ca..b4a6c85 100644
--- a/vapi/gstreamer-rtp-0.10.vapi
+++ b/vapi/gstreamer-rtp-0.10.vapi
@@ -8,6 +8,8 @@ namespace Gst {
 		public int frame_duration;
 		public int frame_size;
 		public int sample_size;
+		[CCode (has_construct_function = false)]
+		protected BaseRTPAudioPayload ();
 		public Gst.FlowReturn flush (uint payload_len, Gst.ClockTime timestamp);
 		public unowned Gst.Adapter get_adapter ();
 		public Gst.FlowReturn push (uchar data, uint payload_len, Gst.ClockTime timestamp);
@@ -30,6 +32,8 @@ namespace Gst {
 		public weak Gst.Pad srcpad;
 		public weak GLib.Thread thread;
 		public bool thread_running;
+		[CCode (has_construct_function = false)]
+		protected BaseRTPDepayload ();
 		[NoWrapper]
 		public virtual Gst.FlowReturn add_to_queue (Gst.Buffer @in);
 		[NoWrapper]
@@ -62,6 +66,8 @@ namespace Gst {
 		public uint32 ts_base;
 		public int32 ts_offset;
 		public weak GLib.Rand ts_rand;
+		[CCode (has_construct_function = false)]
+		protected BaseRTPPayload ();
 		[NoWrapper]
 		public virtual unowned Gst.Caps get_caps (Gst.Pad pad);
 		[NoWrapper]
diff --git a/vapi/gstreamer-tag-0.10.vapi b/vapi/gstreamer-tag-0.10.vapi
index 630c9d2..b58a830 100644
--- a/vapi/gstreamer-tag-0.10.vapi
+++ b/vapi/gstreamer-tag-0.10.vapi
@@ -5,6 +5,8 @@ namespace Gst {
 	[CCode (cheader_filename = "gst/tag/gsttagdemux.h")]
 	public class TagDemux : Gst.Element {
 		public void* reserved;
+		[CCode (has_construct_function = false)]
+		protected TagDemux ();
 		[NoWrapper]
 		public virtual bool identify_tag (Gst.Buffer buffer, bool start_tag, out uint tag_size);
 		[NoWrapper]
diff --git a/vapi/gstreamer-video-0.10.vapi b/vapi/gstreamer-video-0.10.vapi
index 43cceb2..b232ab7 100644
--- a/vapi/gstreamer-video-0.10.vapi
+++ b/vapi/gstreamer-video-0.10.vapi
@@ -109,6 +109,8 @@ namespace Gst {
 	[CCode (cheader_filename = "gst/video/gstvideofilter.h")]
 	public class VideoFilter : Gst.BaseTransform {
 		public bool inited;
+		[CCode (has_construct_function = false)]
+		protected VideoFilter ();
 	}
 	[Compact]
 	[CCode (cheader_filename = "gst/video/gstvideosink.h")]
@@ -122,6 +124,8 @@ namespace Gst {
 	public class VideoSink : Gst.BaseSink {
 		public int height;
 		public int width;
+		[CCode (has_construct_function = false)]
+		protected VideoSink ();
 		public static void center_rect (Gst.VideoRectangle src, Gst.VideoRectangle dst, Gst.VideoRectangle _result, bool scaling);
 		[NoWrapper]
 		public virtual Gst.FlowReturn show_frame (Gst.Buffer buf);
diff --git a/vapi/gtk+-2.0.vapi b/vapi/gtk+-2.0.vapi
index 0ebd87e..c0a3f94 100644
--- a/vapi/gtk+-2.0.vapi
+++ b/vapi/gtk+-2.0.vapi
@@ -105,6 +105,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class AccelMap : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected AccelMap ();
 		public static void add_entry (string accel_path, uint accel_key, Gdk.ModifierType accel_mods);
 		public static void add_filter (string filter_pattern);
 		public static bool change_entry (string accel_path, uint accel_key, Gdk.ModifierType accel_mods, bool replace);
@@ -128,6 +130,8 @@ namespace Gtk {
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Accessible : Atk.Object {
 		public weak Gtk.Widget widget;
+		[CCode (has_construct_function = false)]
+		protected Accessible ();
 		public virtual void connect_widget_destroyed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
@@ -349,6 +353,8 @@ namespace Gtk {
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Bin : Gtk.Container, Atk.Implementor, Gtk.Buildable {
 		public weak Gtk.Widget child;
+		[CCode (has_construct_function = false)]
+		protected Bin ();
 		public unowned Gtk.Widget get_child ();
 	}
 	[Compact]
@@ -410,6 +416,8 @@ namespace Gtk {
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Box : Gtk.Container, Atk.Implementor, Gtk.Buildable, Gtk.Orientable {
 		public weak GLib.List<Gtk.Widget> children;
+		[CCode (has_construct_function = false)]
+		protected Box ();
 		public bool get_homogeneous ();
 		public int get_spacing ();
 		public void pack_end (Gtk.Widget child, bool expand = true, bool fill = true, uint padding = 0);
@@ -515,6 +523,8 @@ namespace Gtk {
 		public int child_ipad_y;
 		public int child_min_height;
 		public int child_min_width;
+		[CCode (has_construct_function = false)]
+		protected ButtonBox ();
 		public bool get_child_secondary (Gtk.Widget child);
 		public Gtk.ButtonBoxStyle get_layout ();
 		public void set_child_secondary (Gtk.Widget child, bool is_secondary);
@@ -586,6 +596,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public abstract class CellRenderer : Gtk.Object {
+		[CCode (has_construct_function = false)]
+		protected CellRenderer ();
 		public virtual bool activate (Gdk.Event event, Gtk.Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags);
 		public void get_alignment (float xalign, float yalign);
 		public void get_fixed_size (int width, int height);
@@ -905,6 +917,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Clipboard : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Clipboard ();
 		public void clear ();
 		public static unowned Gtk.Clipboard @get (Gdk.Atom selection);
 		public unowned Gdk.Display get_display ();
@@ -1070,6 +1084,8 @@ namespace Gtk {
 		public uint has_focus_chain;
 		public uint need_resize;
 		public uint reallocate_redraws;
+		[CCode (has_construct_function = false)]
+		protected Container ();
 		public void add_with_properties (Gtk.Widget widget, ...);
 		public void child_get (Gtk.Widget child, ...);
 		public void child_get_property (Gtk.Widget child, string property_name, GLib.Value value);
@@ -1731,6 +1747,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class IMContext : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected IMContext ();
 		public virtual bool filter_keypress (Gdk.EventKey event);
 		public virtual void focus_in ();
 		public virtual void focus_out ();
@@ -2132,6 +2150,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Item : Gtk.Bin, Atk.Implementor, Gtk.Buildable {
+		[CCode (has_construct_function = false)]
+		protected Item ();
 		[HasEmitter]
 		public virtual signal void deselect ();
 		[HasEmitter]
@@ -2444,6 +2464,8 @@ namespace Gtk {
 		public uint keyboard_mode;
 		public uint menu_flag;
 		public weak Gtk.Widget parent_menu_shell;
+		[CCode (has_construct_function = false)]
+		protected MenuShell ();
 		public void activate_item (Gtk.Widget menu_item, bool force_deactivate);
 		public void append ([CCode (type = "GtkWidget*")] Gtk.MenuItem child);
 		public void deselect ();
@@ -2508,6 +2530,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Misc : Gtk.Widget, Atk.Implementor, Gtk.Buildable {
+		[CCode (has_construct_function = false)]
+		protected Misc ();
 		public void get_alignment (float xalign, float yalign);
 		public void get_padding (int xpad, int ypad);
 		public void set_alignment (float xalign, float yalign);
@@ -2637,6 +2661,8 @@ namespace Gtk {
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Object : GLib.InitiallyUnowned {
 		public uint32 flags;
+		[CCode (has_construct_function = false)]
+		protected Object ();
 		[NoWrapper]
 		public virtual void get_arg (Gtk.Arg arg, uint arg_id);
 		[NoWrapper]
@@ -2712,6 +2738,8 @@ namespace Gtk {
 		public uint orientation;
 		public int original_position;
 		public weak Gdk.GC xor_gc;
+		[CCode (has_construct_function = false)]
+		protected Paned ();
 		public void add1 (Gtk.Widget child);
 		public void add2 (Gtk.Widget child);
 		public unowned Gtk.Widget get_child1 ();
@@ -2783,6 +2811,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class PrintContext : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected PrintContext ();
 		public unowned Pango.Context create_pango_context ();
 		public unowned Pango.Layout create_pango_layout ();
 		public unowned Cairo.Context get_cairo_context ();
@@ -3076,6 +3106,8 @@ namespace Gtk {
 		public uint trough_click_forward;
 		public uint update_pending;
 		public uint update_timeout_id;
+		[CCode (has_construct_function = false)]
+		protected Range ();
 		public unowned Gtk.Adjustment get_adjustment ();
 		public double get_fill_level ();
 		public bool get_flippable ();
@@ -3304,6 +3336,8 @@ namespace Gtk {
 		public int slider_size;
 		public int xsrc;
 		public int ysrc;
+		[CCode (has_construct_function = false)]
+		protected Ruler ();
 		public virtual void draw_pos ();
 		public virtual void draw_ticks ();
 		public Gtk.MetricType get_metric ();
@@ -3333,6 +3367,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Scale : Gtk.Range, Atk.Implementor, Gtk.Buildable, Gtk.Orientable {
+		[CCode (has_construct_function = false)]
+		protected Scale ();
 		public void add_mark (double value, Gtk.PositionType position, string? markup);
 		public void clear_marks ();
 		public int get_digits ();
@@ -3375,6 +3411,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Scrollbar : Gtk.Range, Atk.Implementor, Gtk.Buildable, Gtk.Orientable {
+		[CCode (has_construct_function = false)]
+		protected Scrollbar ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ScrolledWindow : Gtk.Bin, Atk.Implementor, Gtk.Buildable {
@@ -3449,6 +3487,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Separator : Gtk.Widget, Atk.Implementor, Gtk.Buildable, Gtk.Orientable {
+		[CCode (has_construct_function = false)]
+		protected Separator ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class SeparatorMenuItem : Gtk.MenuItem, Atk.Implementor, Gtk.Buildable, Gtk.Activatable {
@@ -3468,6 +3508,8 @@ namespace Gtk {
 		public weak Gtk.SettingsPropertyValue property_values;
 		public weak Gtk.RcContext rc_context;
 		public weak Gdk.Screen screen;
+		[CCode (has_construct_function = false)]
+		protected Settings ();
 		public static unowned Gtk.Settings get_default ();
 		public static unowned Gtk.Settings get_for_screen (Gdk.Screen screen);
 		public static void install_property (GLib.ParamSpec pspec);
@@ -4691,6 +4733,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Tooltip : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Tooltip ();
 		public void set_custom (Gtk.Widget custom_widget);
 		public void set_icon (Gdk.Pixbuf pixbuf);
 		public void set_icon_from_gicon (GLib.Icon gicon, Gtk.IconSize size);
@@ -4738,6 +4782,8 @@ namespace Gtk {
 		public weak GLib.List sort_list;
 		public int stamp;
 		public int zero_ref_count;
+		[CCode (has_construct_function = false)]
+		protected TreeModelSort ();
 		public void clear_cache ();
 		public bool convert_child_iter_to_iter (out Gtk.TreeIter sort_iter, Gtk.TreeIter child_iter);
 		public unowned Gtk.TreePath convert_child_path_to_path (Gtk.TreePath child_path);
@@ -4800,6 +4846,8 @@ namespace Gtk {
 		public Gtk.SelectionMode type;
 		public void* user_data;
 		public weak Gtk.TreeSelectionFunc user_func;
+		[CCode (has_construct_function = false)]
+		protected TreeSelection ();
 		public int count_selected_rows ();
 		public Gtk.SelectionMode get_mode ();
 		public unowned Gtk.TreeSelectionFunc get_select_function ();
diff --git a/vapi/gtk+-3.0.vapi b/vapi/gtk+-3.0.vapi
index 3de3c5b..92672a8 100644
--- a/vapi/gtk+-3.0.vapi
+++ b/vapi/gtk+-3.0.vapi
@@ -97,6 +97,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class AccelMap : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected AccelMap ();
 		public static void add_entry (string accel_path, uint accel_key, Gdk.ModifierType accel_mods);
 		public static void add_filter (string filter_pattern);
 		public static bool change_entry (string accel_path, uint accel_key, Gdk.ModifierType accel_mods, bool replace);
@@ -119,6 +121,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Accessible : Atk.Object {
+		[CCode (has_construct_function = false)]
+		protected Accessible ();
 		public virtual void connect_widget_destroyed ();
 		public unowned Gtk.Widget get_widget ();
 	}
@@ -351,6 +355,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Bin : Gtk.Container, Atk.Implementor, Gtk.Buildable, Gtk.SizeRequest {
+		[CCode (has_construct_function = false)]
+		protected Bin ();
 		public unowned Gtk.Widget get_child ();
 	}
 	[Compact]
@@ -560,6 +566,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public abstract class CellRenderer : Gtk.Object {
+		[CCode (has_construct_function = false)]
+		protected CellRenderer ();
 		public virtual bool activate (Gdk.Event event, Gtk.Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags);
 		public void get_alignment (float xalign, float yalign);
 		public void get_fixed_size (int width, int height);
@@ -869,6 +877,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Clipboard : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Clipboard ();
 		public void clear ();
 		public static unowned Gtk.Clipboard @get (Gdk.Atom selection);
 		public unowned Gdk.Display get_display ();
@@ -1030,6 +1040,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Container : Gtk.Widget, Atk.Implementor, Gtk.Buildable, Gtk.SizeRequest {
+		[CCode (has_construct_function = false)]
+		protected Container ();
 		public void add_with_properties (Gtk.Widget widget, ...);
 		public void child_get (Gtk.Widget child, ...);
 		public void child_get_property (Gtk.Widget child, string property_name, GLib.Value value);
@@ -1581,6 +1593,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class IMContext : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected IMContext ();
 		public virtual bool filter_keypress (Gdk.EventKey event);
 		public virtual void focus_in ();
 		public virtual void focus_out ();
@@ -1958,6 +1972,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Item : Gtk.Bin, Atk.Implementor, Gtk.Buildable, Gtk.SizeRequest {
+		[CCode (has_construct_function = false)]
+		protected Item ();
 		[HasEmitter]
 		public virtual signal void deselect ();
 		[HasEmitter]
@@ -2194,6 +2210,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class MenuShell : Gtk.Container, Atk.Implementor, Gtk.Buildable, Gtk.SizeRequest {
+		[CCode (has_construct_function = false)]
+		protected MenuShell ();
 		public void activate_item (Gtk.Widget menu_item, bool force_deactivate);
 		public void append ([CCode (type = "GtkWidget*")] Gtk.MenuItem child);
 		public void deselect ();
@@ -2257,6 +2275,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Misc : Gtk.Widget, Atk.Implementor, Gtk.Buildable, Gtk.SizeRequest {
+		[CCode (has_construct_function = false)]
+		protected Misc ();
 		public void get_alignment (float xalign, float yalign);
 		public void get_padding (int xpad, int ypad);
 		public void set_alignment (float xalign, float yalign);
@@ -2356,6 +2376,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Object : GLib.InitiallyUnowned {
+		[CCode (has_construct_function = false)]
+		protected Object ();
 		[HasEmitter]
 		public virtual signal void destroy ();
 	}
@@ -2474,6 +2496,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class PrintContext : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected PrintContext ();
 		public unowned Pango.Context create_pango_context ();
 		public unowned Pango.Layout create_pango_layout ();
 		public unowned Cairo.Context get_cairo_context ();
@@ -2740,6 +2764,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Range : Gtk.Widget, Atk.Implementor, Gtk.Buildable, Gtk.SizeRequest, Gtk.Orientable {
+		[CCode (has_construct_function = false)]
+		protected Range ();
 		public unowned Gtk.Adjustment get_adjustment ();
 		public double get_fill_level ();
 		public bool get_flippable ();
@@ -3119,6 +3145,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Settings : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Settings ();
 		public static unowned Gtk.Settings get_default ();
 		public static unowned Gtk.Settings get_for_screen (Gdk.Screen screen);
 		public static void install_property (GLib.ParamSpec pspec);
@@ -4249,6 +4277,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Tooltip : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Tooltip ();
 		public void set_custom (Gtk.Widget custom_widget);
 		public void set_icon (Gdk.Pixbuf pixbuf);
 		public void set_icon_from_gicon (GLib.Icon gicon, Gtk.IconSize size);
@@ -4284,6 +4314,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class TreeModelSort : GLib.Object, Gtk.TreeModel, Gtk.TreeSortable, Gtk.TreeDragSource {
+		[CCode (has_construct_function = false)]
+		protected TreeModelSort ();
 		public void clear_cache ();
 		public bool convert_child_iter_to_iter (out Gtk.TreeIter sort_iter, Gtk.TreeIter child_iter);
 		public unowned Gtk.TreePath convert_child_path_to_path (Gtk.TreePath child_path);
@@ -4341,6 +4373,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class TreeSelection : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected TreeSelection ();
 		public int count_selected_rows ();
 		public Gtk.SelectionMode get_mode ();
 		public unowned Gtk.TreeSelectionFunc get_select_function ();
diff --git a/vapi/gtksourceview-2.0.vapi b/vapi/gtksourceview-2.0.vapi
index a689d0a..d12e274 100644
--- a/vapi/gtksourceview-2.0.vapi
+++ b/vapi/gtksourceview-2.0.vapi
@@ -52,6 +52,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtksourceview/gtksourceview.h")]
 	public class SourceCompletion : Gtk.Object {
+		[CCode (has_construct_function = false)]
+		protected SourceCompletion ();
 		public bool add_provider (Gtk.SourceCompletionProvider provider) throws GLib.Error;
 		public void block_interactive ();
 		public unowned Gtk.SourceCompletionContext create_context (Gtk.TextIter? position = null);
@@ -92,6 +94,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtksourceview/gtksourceview.h")]
 	public class SourceCompletionContext : GLib.InitiallyUnowned {
+		[CCode (has_construct_function = false)]
+		protected SourceCompletionContext ();
 		public void add_proposals (void* provider, GLib.List proposals, bool finished);
 		public Gtk.SourceCompletionActivation get_activation ();
 		public void get_iter (Gtk.TextIter iter);
@@ -164,6 +168,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtksourceview/gtksourceview.h")]
 	public class SourceGutter : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected SourceGutter ();
 		public unowned Gdk.Window get_window ();
 		public void insert (Gtk.CellRenderer renderer, int position);
 		public void queue_draw ();
@@ -180,6 +186,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtksourceview/gtksourceview.h")]
 	public class SourceLanguage : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected SourceLanguage ();
 		public unowned string get_globs ();
 		public bool get_hidden ();
 		public unowned string get_id ();
@@ -276,6 +284,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtksourceview/gtksourceview.h")]
 	public class SourceStyle : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected SourceStyle ();
 		public Gtk.SourceStyle copy ();
 		[NoAccessorMethod]
 		public string background { owned get; construct; }
@@ -308,6 +318,8 @@ namespace Gtk {
 	}
 	[CCode (cheader_filename = "gtksourceview/gtksourceview.h")]
 	public class SourceStyleScheme : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected SourceStyleScheme ();
 		public unowned string get_authors ();
 		public unowned string get_description ();
 		public unowned string get_filename ();
diff --git a/vapi/hildon-fm-2.vapi b/vapi/hildon-fm-2.vapi
index 8b135ac..7c38116 100644
--- a/vapi/hildon-fm-2.vapi
+++ b/vapi/hildon-fm-2.vapi
@@ -63,6 +63,8 @@ namespace Hildon {
 	}
 	[CCode (cheader_filename = "hildon/hildon-file-selection.h")]
 	public class FileSelection : Gtk.Container, Atk.Implementor, Gtk.Buildable {
+		[CCode (has_construct_function = false)]
+		protected FileSelection ();
 		public void clear_multi_selection ();
 		public bool content_iter_is_selected (Gtk.TreeIter iter);
 		public void dim_current_selection ();
@@ -139,6 +141,8 @@ namespace Hildon {
 	}
 	[CCode (cheader_filename = "hildon/hildon-file-system-model.h")]
 	public class FileSystemModel : GLib.Object, Gtk.TreeModel, Gtk.TreeDragSource {
+		[CCode (has_construct_function = false)]
+		protected FileSystemModel ();
 		public unowned string autoname_uri (string uri) throws GLib.Error;
 		[CCode (type = "gchar*", has_construct_function = false)]
 		public FileSystemModel.item (Hildon.FileSystemModel model, Gtk.TreeIter parent, string stub_name, string extension);
diff --git a/vapi/libgda-4.0.vapi b/vapi/libgda-4.0.vapi
index 6bd3d26..e0068d2 100644
--- a/vapi/libgda-4.0.vapi
+++ b/vapi/libgda-4.0.vapi
@@ -47,6 +47,8 @@ namespace Gda {
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class BlobOp : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected BlobOp ();
 		public virtual long get_length ();
 		public virtual long read (Gda.Blob blob, long offset, long size);
 		public bool read_all (Gda.Blob blob);
@@ -83,6 +85,8 @@ namespace Gda {
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class Config : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Config ();
 		public static bool can_modify_system_config ();
 		public static bool define_dsn (Gda.DsnInfo info) throws GLib.Error;
 		public static bool dsn_needs_authentication (string dsn_name);
@@ -108,6 +112,8 @@ namespace Gda {
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class Connection : GLib.Object, Gda.Lockable {
+		[CCode (has_construct_function = false)]
+		protected Connection ();
 		public bool add_savepoint (string name) throws GLib.Error;
 		public unowned GLib.SList<GLib.Object> batch_execute (Gda.Batch batch, Gda.Set @params, Gda.StatementModelUsage model_usage) throws GLib.Error;
 		public bool begin_transaction (string name, Gda.TransactionIsolation level) throws GLib.Error;
@@ -259,6 +265,8 @@ namespace Gda {
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class DataModelImport : GLib.Object, Gda.DataModel {
+		[CCode (has_construct_function = false)]
+		protected DataModelImport ();
 		public void clean_errors ();
 		[CCode (type = "GdaDataModel*", has_construct_function = false)]
 		public DataModelImport.file (string filename, bool random_access, Gda.Set options);
@@ -283,6 +291,8 @@ namespace Gda {
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class DataModelIter : Gda.Set {
+		[CCode (has_construct_function = false)]
+		protected DataModelIter ();
 		public static GLib.Quark error_quark ();
 		public unowned Gda.Holder get_holder_for_field (int col);
 		public int get_row ();
@@ -361,6 +371,8 @@ namespace Gda {
 		public int advertized_nrows;
 		public int nb_stored_rows;
 		public weak Gda.PStmt prep_stmt;
+		[CCode (has_construct_function = false)]
+		protected DataSelect ();
 		public bool compute_columns_attributes () throws GLib.Error;
 		public bool compute_modification_statements () throws GLib.Error;
 		public bool compute_row_selection_condition () throws GLib.Error;
@@ -680,6 +692,8 @@ namespace Gda {
 		public weak GLib.SList tmpl_columns;
 		[CCode (array_length = false)]
 		public weak GLib.Type[] types;
+		[CCode (has_construct_function = false)]
+		protected PStmt ();
 		public void copy_contents (Gda.PStmt dest);
 		public unowned Gda.Statement get_gda_statement ();
 		public void set_gda_statement (Gda.Statement stmt);
@@ -768,6 +782,8 @@ namespace Gda {
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class ServerProvider : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected ServerProvider ();
 		[NoWrapper]
 		public virtual bool add_savepoint (Gda.Connection cnc, string name) throws GLib.Error;
 		[NoWrapper]
@@ -1316,6 +1332,8 @@ namespace Gda {
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class SqliteProvider : Gda.ServerProvider {
+		[CCode (has_construct_function = false)]
+		protected SqliteProvider ();
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class Statement : GLib.Object {
@@ -1383,6 +1401,8 @@ namespace Gda {
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class VconnectionDataModel : Gda.VirtualConnection, Gda.Lockable {
+		[CCode (has_construct_function = false)]
+		protected VconnectionDataModel ();
 		public bool add (Gda.VconnectionDataModelSpec spec, GLib.DestroyNotify spec_free_func, string table_name) throws GLib.Error;
 		public bool add_model (Gda.DataModel model, string table_name) throws GLib.Error;
 		public void @foreach (Gda.VconnectionDataModelFunc func, void* data);
@@ -1399,6 +1419,8 @@ namespace Gda {
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class VconnectionHub : Gda.VconnectionDataModel, Gda.Lockable {
+		[CCode (has_construct_function = false)]
+		protected VconnectionHub ();
 		public bool add (Gda.Connection cnc, string ns) throws GLib.Error;
 		public void @foreach (Gda.VConnectionHubFunc func, void* data);
 		public unowned Gda.Connection get_connection (string ns);
@@ -1406,12 +1428,16 @@ namespace Gda {
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class VirtualConnection : Gda.Connection, Gda.Lockable {
+		[CCode (has_construct_function = false)]
+		protected VirtualConnection ();
 		public void* internal_get_provider_data ();
 		public void internal_set_provider_data (void* data, GLib.DestroyNotify destroy_func);
 		public static unowned Gda.Connection open (Gda.VirtualProvider virtual_provider) throws GLib.Error;
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class VirtualProvider : Gda.SqliteProvider {
+		[CCode (has_construct_function = false)]
+		protected VirtualProvider ();
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class VproviderDataModel : Gda.VirtualProvider {
@@ -1445,7 +1471,7 @@ namespace Gda {
 	public class XaTransactionId {
 		public ushort bqual_length;
 		[CCode (array_length = false)]
-		public weak string[] data;
+		public weak GLib.ObjectPath[] data;
 		public uint32 format;
 		public ushort gtrid_length;
 		public unowned string to_string ();
diff --git a/vapi/libgdata.vapi b/vapi/libgdata.vapi
index cfa69c9..6dded06 100644
--- a/vapi/libgdata.vapi
+++ b/vapi/libgdata.vapi
@@ -108,6 +108,8 @@ namespace GData {
 	}
 	[CCode (cheader_filename = "gdata/gdata.h")]
 	public class CalendarFeed : GData.Feed {
+		[CCode (has_construct_function = false)]
+		protected CalendarFeed ();
 		public uint get_times_cleaned ();
 		public unowned string get_timezone ();
 		public uint times_cleaned { get; }
@@ -281,6 +283,8 @@ namespace GData {
 	}
 	[CCode (cheader_filename = "gdata/gdata.h")]
 	public class DocumentsEntry : GData.Entry, GData.AccessHandler {
+		[CCode (has_construct_function = false)]
+		protected DocumentsEntry ();
 		public unowned string get_document_id ();
 		public void get_edited (GLib.TimeVal edited);
 		public unowned GData.Author get_last_modified_by ();
@@ -298,6 +302,8 @@ namespace GData {
 	}
 	[CCode (cheader_filename = "gdata/gdata.h")]
 	public class DocumentsFeed : GData.Feed {
+		[CCode (has_construct_function = false)]
+		protected DocumentsFeed ();
 	}
 	[CCode (cheader_filename = "gdata/gdata.h")]
 	public class DocumentsFolder : GData.DocumentsEntry, GData.AccessHandler {
@@ -416,6 +422,8 @@ namespace GData {
 	}
 	[CCode (cheader_filename = "gdata/gdata.h")]
 	public class Feed : GData.Parsable {
+		[CCode (has_construct_function = false)]
+		protected Feed ();
 		public unowned GLib.List<GData.Author> get_authors ();
 		public unowned GLib.List<GData.Category> get_categories ();
 		public unowned GLib.List<GData.Entry> get_entries ();
@@ -919,6 +927,8 @@ namespace GData {
 	[CCode (cheader_filename = "gdata/gdata.h")]
 	public class Parsable : GLib.Object {
 		[CCode (has_construct_function = false)]
+		protected Parsable ();
+		[CCode (has_construct_function = false)]
 		public Parsable.from_xml (GLib.Type parsable_type, string xml, int length) throws GLib.Error;
 		[NoWrapper]
 		public virtual void get_namespaces (GLib.HashTable namespaces);
@@ -1001,6 +1011,8 @@ namespace GData {
 	}
 	[CCode (cheader_filename = "gdata/gdata.h")]
 	public class PicasaWebFeed : GData.Feed {
+		[CCode (has_construct_function = false)]
+		protected PicasaWebFeed ();
 	}
 	[CCode (type_check_function = "GDATA_IS_PICASAWEB_FILE",cprefix="gdata_picasaweb_file_",type_id="GDATA_TYPE_PICASAWEB_FILE", cheader_filename = "gdata/gdata.h")]
 	public class PicasaWebFile : GData.Entry {
@@ -1176,6 +1188,8 @@ namespace GData {
 	}
 	[CCode (cheader_filename = "gdata/gdata.h")]
 	public class PicasaWebUser : GData.Entry {
+		[CCode (has_construct_function = false)]
+		protected PicasaWebUser ();
 		[CCode (cname = "gdata_picasaweb_user_get_max_photos_per_album")]
 		public int get_max_photos_per_album ();
 		[CCode (cname = "gdata_picasaweb_user_get_nickname")]
@@ -1240,6 +1254,8 @@ namespace GData {
 	}
 	[CCode (cheader_filename = "gdata/gdata.h")]
 	public class Service : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Service ();
 		[NoWrapper]
 		public virtual void append_query_headers (Soup.Message message);
 		public bool authenticate (string username, string password, GLib.Cancellable? cancellable) throws GLib.Error;
@@ -1291,12 +1307,16 @@ namespace GData {
 	}
 	[CCode (type_check_function = "GDATA_IS_YOUTUBE_CONTENT", cheader_filename = "gdata/gdata.h")]
 	public class YouTubeContent : GData.MediaContent {
+		[CCode (has_construct_function = false)]
+		protected YouTubeContent ();
 		[CCode (cname = "gdata_youtube_content_get_format")]
 		public GData.YouTubeFormat get_format ();
 		public GData.YouTubeFormat format { get; }
 	}
 	[CCode (type_check_function = "GDATA_IS_YOUTUBE_CREDIT", cheader_filename = "gdata/gdata.h")]
 	public class YouTubeCredit : GData.MediaCredit {
+		[CCode (has_construct_function = false)]
+		protected YouTubeCredit ();
 		[CCode (cname = "gdata_youtube_credit_get_entity_type")]
 		public unowned string get_entity_type ();
 		public string entity_type { get; }
diff --git a/vapi/libgnome-2.0.vapi b/vapi/libgnome-2.0.vapi
index 9359f25..43e9b16 100644
--- a/vapi/libgnome-2.0.vapi
+++ b/vapi/libgnome-2.0.vapi
@@ -25,6 +25,8 @@ namespace Gnome {
 	}
 	[CCode (cheader_filename = "libgnome/libgnome.h")]
 	public class Program : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Program ();
 		public static unowned Gnome.Program @get ();
 		public unowned string get_app_id ();
 		public unowned string get_app_version ();
diff --git a/vapi/libgsf-1.vapi b/vapi/libgsf-1.vapi
index 9f9ab8a..96105e0 100644
--- a/vapi/libgsf-1.vapi
+++ b/vapi/libgsf-1.vapi
@@ -54,6 +54,8 @@ namespace Gsf {
 	}
 	[CCode (cheader_filename = "gsf/gsf-infile-impl.h")]
 	public class Infile : Gsf.Input {
+		[CCode (has_construct_function = false)]
+		protected Infile ();
 		public unowned Gsf.Input child_by_aname (string[] names);
 		public virtual unowned Gsf.Input? child_by_index (int i);
 		public virtual unowned Gsf.Input? child_by_name (string name);
@@ -101,6 +103,8 @@ namespace Gsf {
 	[CCode (cheader_filename = "gsf/gsf-input-impl.h")]
 	public class Input : GLib.Object {
 		public Gsf.off_t cur_offset;
+		[CCode (has_construct_function = false)]
+		protected Input ();
 		[NoWrapper]
 		public virtual Gsf.Input Dup () throws GLib.Error;
 		[NoWrapper]
@@ -209,6 +213,8 @@ namespace Gsf {
 	}
 	[CCode (cheader_filename = "gsf/gsf-outfile-impl.h")]
 	public class Outfile : Gsf.Output {
+		[CCode (has_construct_function = false)]
+		protected Outfile ();
 		public Gsf.Output new_child (string name, bool is_dir);
 		public Gsf.Output new_child_full (string name, bool is_dir, ...);
 	}
@@ -264,6 +270,8 @@ namespace Gsf {
 		public weak string printf_buf;
 		public int printf_buf_size;
 		public weak GLib.Object wrapped_by;
+		[CCode (has_construct_function = false)]
+		protected Output ();
 		[NoWrapper]
 		public virtual bool Close ();
 		[NoWrapper]
@@ -303,6 +311,8 @@ namespace Gsf {
 		public bool fields_on_line;
 		public size_t quote_len;
 		public size_t separator_len;
+		[CCode (has_construct_function = false)]
+		protected OutputCsv ();
 		public bool write_eol ();
 		public bool write_field (string field, size_t len);
 		[NoAccessorMethod]
@@ -382,6 +392,8 @@ namespace Gsf {
 	}
 	[CCode (cheader_filename = "gsf/gsf-structured-blob.h")]
 	public class StructuredBlob : Gsf.Infile {
+		[CCode (has_construct_function = false)]
+		protected StructuredBlob ();
 		public static Gsf.StructuredBlob read (Gsf.Input input);
 		public bool write (Gsf.Outfile container);
 	}
diff --git a/vapi/liboobs-1.vapi b/vapi/liboobs-1.vapi
index 8d8e4bf..95027e4 100644
--- a/vapi/liboobs-1.vapi
+++ b/vapi/liboobs-1.vapi
@@ -22,6 +22,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class GroupsConfig : Oobs.Object {
+		[CCode (has_construct_function = false)]
+		protected GroupsConfig ();
 		public Oobs.Result add_group (Oobs.Group group);
 		public Oobs.Result delete_group (Oobs.Group group);
 		public long find_free_gid (long gid_min, long gid_max);
@@ -38,6 +40,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class HostsConfig : Oobs.Object {
+		[CCode (has_construct_function = false)]
+		protected HostsConfig ();
 		public static unowned Oobs.Object @get ();
 		public unowned GLib.List get_dns_servers ();
 		public unowned string get_domainname ();
@@ -51,6 +55,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class Iface : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Iface ();
 		public bool get_active ();
 		public bool get_auto ();
 		public bool get_configured ();
@@ -70,6 +76,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class IfaceEthernet : Oobs.Iface {
+		[CCode (has_construct_function = false)]
+		protected IfaceEthernet ();
 		public unowned string get_broadcast_address ();
 		public unowned string get_configuration_method ();
 		public unowned string get_gateway_address ();
@@ -93,9 +101,13 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class IfaceIRLan : Oobs.IfaceEthernet {
+		[CCode (has_construct_function = false)]
+		protected IfaceIRLan ();
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class IfacePPP : Oobs.Iface {
+		[CCode (has_construct_function = false)]
+		protected IfacePPP ();
 		public unowned string get_apn ();
 		public unowned string get_connection_type ();
 		public bool get_default_gateway ();
@@ -143,6 +155,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class IfacePlip : Oobs.Iface {
+		[CCode (has_construct_function = false)]
+		protected IfacePlip ();
 		public unowned string get_address ();
 		public unowned string get_remote_address ();
 		public void set_address (string address);
@@ -152,6 +166,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class IfaceWireless : Oobs.IfaceEthernet {
+		[CCode (has_construct_function = false)]
+		protected IfaceWireless ();
 		public unowned string get_essid ();
 		public unowned string get_key ();
 		public unowned string get_key_type ();
@@ -164,6 +180,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class IfacesConfig : Oobs.Object {
+		[CCode (has_construct_function = false)]
+		protected IfacesConfig ();
 		public static unowned Oobs.Object @get ();
 		public unowned GLib.List get_available_configuration_methods ();
 		public unowned GLib.List get_available_key_types ();
@@ -172,6 +190,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class List : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected List ();
 		public void append (Oobs.ListIter iter);
 		public void clear ();
 		public unowned GLib.Object @get (Oobs.ListIter iter);
@@ -194,11 +214,15 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class NFSConfig : Oobs.Object {
+		[CCode (has_construct_function = false)]
+		protected NFSConfig ();
 		public static unowned Oobs.Object @get ();
 		public unowned Oobs.List get_shares ();
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class NTPConfig : Oobs.Object {
+		[CCode (has_construct_function = false)]
+		protected NTPConfig ();
 		public static unowned Oobs.Object @get ();
 		public unowned Oobs.List get_servers ();
 	}
@@ -212,6 +236,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class Object : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Object ();
 		public Oobs.Result add ();
 		public Oobs.Result add_async (Oobs.ObjectAsyncFunc func, void* data);
 		public bool authenticate () throws GLib.Error;
@@ -241,6 +267,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class SMBConfig : Oobs.Object {
+		[CCode (has_construct_function = false)]
+		protected SMBConfig ();
 		public void delete_user_password (Oobs.User user);
 		public static unowned Oobs.Object @get ();
 		public unowned string get_description ();
@@ -261,12 +289,16 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class SelfConfig : Oobs.Object {
+		[CCode (has_construct_function = false)]
+		protected SelfConfig ();
 		public static unowned Oobs.Object @get ();
 		public unowned Oobs.User get_user ();
 		public bool is_user_self (Oobs.User user);
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class Service : Oobs.Object {
+		[CCode (has_construct_function = false)]
+		protected Service ();
 		public unowned string get_name ();
 		public void get_runlevel_configuration (Oobs.ServicesRunlevel runlevel, Oobs.ServiceStatus status, int priority);
 		public void set_runlevel_configuration (Oobs.ServicesRunlevel runlevel, Oobs.ServiceStatus status, int priority);
@@ -274,6 +306,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class ServicesConfig : Oobs.Object {
+		[CCode (has_construct_function = false)]
+		protected ServicesConfig ();
 		public static unowned Oobs.Object @get ();
 		public unowned Oobs.ServicesRunlevel get_default_runlevel ();
 		public unowned GLib.List get_runlevels ();
@@ -287,6 +321,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class Session : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Session ();
 		public Oobs.Result commit ();
 		public static unowned Oobs.Session @get ();
 		public unowned string get_authentication_action ();
@@ -299,6 +335,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class Share : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Share ();
 		public unowned string get_path ();
 		public void set_path (string path);
 		public string path { get; set; }
@@ -343,6 +381,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class TimeConfig : Oobs.Object {
+		[CCode (has_construct_function = false)]
+		protected TimeConfig ();
 		public static unowned Oobs.Object @get ();
 		public void get_time (int year, int month, int day, int hour, int minute, int second);
 		public unowned string get_timezone ();
@@ -415,6 +455,8 @@ namespace Oobs {
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class UsersConfig : Oobs.Object {
+		[CCode (has_construct_function = false)]
+		protected UsersConfig ();
 		public Oobs.Result add_user (Oobs.User user);
 		public Oobs.Result delete_user (Oobs.User user);
 		public long find_free_uid (long uid_min, long uid_max);
diff --git a/vapi/libsoup-2.2.vapi b/vapi/libsoup-2.2.vapi
index 8e9b0a1..fce8f34 100644
--- a/vapi/libsoup-2.2.vapi
+++ b/vapi/libsoup-2.2.vapi
@@ -240,6 +240,8 @@ namespace Soup {
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public class Session : GLib.Object, Soup.MessageFilter {
 		public weak Soup.MessageQueue queue;
+		[CCode (has_construct_function = false)]
+		protected Session ();
 		public void abort ();
 		public void add_filter (Soup.MessageFilter filter);
 		public virtual void cancel_message (Soup.Message msg);
diff --git a/vapi/libsoup-2.4.vapi b/vapi/libsoup-2.4.vapi
index e7aa005..b404bd2 100644
--- a/vapi/libsoup-2.4.vapi
+++ b/vapi/libsoup-2.4.vapi
@@ -51,6 +51,8 @@ namespace Soup {
 	}
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public class AuthDomain : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected AuthDomain ();
 		public virtual unowned string accepts (Soup.Message msg);
 		public void add_path (string path);
 		public virtual unowned string challenge (Soup.Message msg);
@@ -123,6 +125,8 @@ namespace Soup {
 	}
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public class ContentDecoder : GLib.Object, Soup.SessionFeature {
+		[CCode (has_construct_function = false)]
+		protected ContentDecoder ();
 	}
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public class ContentSniffer : GLib.Object, Soup.SessionFeature {
@@ -395,6 +399,8 @@ namespace Soup {
 	}
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public class Session : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Session ();
 		public void abort ();
 		[NoWrapper]
 		public virtual void auth_required (Soup.Message msg, Soup.Auth auth, bool retrying);
diff --git a/vapi/libwnck-1.0.vapi b/vapi/libwnck-1.0.vapi
index fa2e43e..c8e8905 100644
--- a/vapi/libwnck-1.0.vapi
+++ b/vapi/libwnck-1.0.vapi
@@ -19,6 +19,8 @@ namespace Wnck {
 	}
 	[CCode (cheader_filename = "libwnck/libwnck.h")]
 	public class Application : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Application ();
 		public static unowned Wnck.Application @get (ulong xwindow);
 		public unowned Gdk.Pixbuf get_icon ();
 		public bool get_icon_is_fallback ();
@@ -43,6 +45,8 @@ namespace Wnck {
 	}
 	[CCode (cheader_filename = "libwnck/libwnck.h")]
 	public class ClassGroup : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected ClassGroup ();
 		public static unowned Wnck.ClassGroup @get (string res_class);
 		public unowned Gdk.Pixbuf get_icon ();
 		public unowned Gdk.Pixbuf get_mini_icon ();
@@ -106,6 +110,8 @@ namespace Wnck {
 	}
 	[CCode (cheader_filename = "libwnck/libwnck.h")]
 	public class Screen : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Screen ();
 		public void calc_workspace_layout (int num_workspaces, int space_index, Wnck.WorkspaceLayout layout);
 		public void change_workspace_count (int count);
 		public void force_update ();
@@ -201,6 +207,8 @@ namespace Wnck {
 	}
 	[CCode (cheader_filename = "libwnck/libwnck.h")]
 	public class Window : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Window ();
 		public void activate (uint32 timestamp);
 		public void activate_transient (uint32 timestamp);
 		public void close (uint32 timestamp);
@@ -293,6 +301,8 @@ namespace Wnck {
 	}
 	[CCode (cheader_filename = "libwnck/libwnck.h")]
 	public class Workspace : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Workspace ();
 		public void activate (uint32 timestamp);
 		public void change_name (string name);
 		public int get_height ();
diff --git a/vapi/pango.vapi b/vapi/pango.vapi
index 8ad4840..7d891f9 100644
--- a/vapi/pango.vapi
+++ b/vapi/pango.vapi
@@ -179,6 +179,8 @@ namespace Pango {
 	}
 	[CCode (cheader_filename = "pango/pango.h")]
 	public class Font : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Font ();
 		public unowned Pango.FontDescription describe ();
 		public unowned Pango.FontDescription describe_with_absolute_size ();
 		public static void descriptions_free (Pango.FontDescription[] descs);
@@ -225,6 +227,8 @@ namespace Pango {
 	}
 	[CCode (cheader_filename = "pango/pango.h")]
 	public class FontFace : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected FontFace ();
 		public unowned Pango.FontDescription describe ();
 		public unowned string get_face_name ();
 		public bool is_synthesized ();
@@ -232,12 +236,16 @@ namespace Pango {
 	}
 	[CCode (cheader_filename = "pango/pango.h")]
 	public class FontFamily : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected FontFamily ();
 		public unowned string get_name ();
 		public bool is_monospace ();
 		public void list_faces (Pango.FontFace[] faces);
 	}
 	[CCode (cheader_filename = "pango/pango.h")]
 	public class FontMap : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected FontMap ();
 		public unowned Pango.Context create_context ();
 		public void list_families (Pango.FontFamily[] families);
 		public unowned Pango.Font load_font (Pango.Context context, Pango.FontDescription desc);
@@ -257,6 +265,8 @@ namespace Pango {
 	}
 	[CCode (cheader_filename = "pango/pango.h")]
 	public class Fontset : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Fontset ();
 		public void @foreach (Pango.FontsetForeachFunc func, void* data);
 		public unowned Pango.Font get_font (uint wc);
 		public unowned Pango.FontMetrics get_metrics ();
@@ -448,6 +458,8 @@ namespace Pango {
 		public Pango.Matrix matrix;
 		public bool strikethrough;
 		public Pango.Underline underline;
+		[CCode (has_construct_function = false)]
+		protected Renderer ();
 		public void activate ();
 		[NoWrapper]
 		public virtual void begin ();
diff --git a/vapi/poppler-glib.vapi b/vapi/poppler-glib.vapi
index 295cf81..0ea5a0b 100644
--- a/vapi/poppler-glib.vapi
+++ b/vapi/poppler-glib.vapi
@@ -17,6 +17,8 @@ namespace Poppler {
 	}
 	[CCode (cheader_filename = "poppler.h")]
 	public class Annot : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Annot ();
 		public Poppler.AnnotType get_annot_type ();
 		public unowned Poppler.Color get_color ();
 		public unowned string get_contents ();
@@ -41,6 +43,8 @@ namespace Poppler {
 	}
 	[CCode (cheader_filename = "poppler.h")]
 	public class AnnotFreeText : Poppler.AnnotMarkup {
+		[CCode (has_construct_function = false)]
+		protected AnnotFreeText ();
 		public unowned Poppler.AnnotCalloutLine get_callout_line ();
 		public Poppler.AnnotFreeTextQuadding get_quadding ();
 	}
@@ -55,6 +59,8 @@ namespace Poppler {
 	}
 	[CCode (cheader_filename = "poppler.h")]
 	public class AnnotMarkup : Poppler.Annot {
+		[CCode (has_construct_function = false)]
+		protected AnnotMarkup ();
 		public GLib.Date get_date ();
 		public Poppler.AnnotExternalDataType get_external_data ();
 		public unowned string get_label ();
@@ -67,6 +73,8 @@ namespace Poppler {
 	}
 	[CCode (cheader_filename = "poppler.h")]
 	public class AnnotText : Poppler.AnnotMarkup {
+		[CCode (has_construct_function = false)]
+		protected AnnotText ();
 		public unowned string get_icon ();
 		public bool get_is_open ();
 		public Poppler.AnnotTextState get_state ();
@@ -79,6 +87,8 @@ namespace Poppler {
 		public GLib.Time mtime;
 		public weak string name;
 		public size_t size;
+		[CCode (has_construct_function = false)]
+		protected Attachment ();
 		public bool save (string filename) throws GLib.Error;
 		public bool save_to_callback (Poppler.AttachmentSaveFunc save_func) throws GLib.Error;
 	}
@@ -110,6 +120,8 @@ namespace Poppler {
 	}
 	[CCode (cheader_filename = "poppler.h")]
 	public class Document : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Document ();
 		public unowned Poppler.Dest find_dest (string link_name);
 		[CCode (has_construct_function = false)]
 		public Document.from_data (string data, int length, string password) throws GLib.Error;
@@ -179,6 +191,8 @@ namespace Poppler {
 	}
 	[CCode (cheader_filename = "poppler.h")]
 	public class FormField : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected FormField ();
 		public Poppler.FormButtonType button_get_button_type ();
 		public bool button_get_state ();
 		public void button_set_state (bool state);
@@ -239,6 +253,8 @@ namespace Poppler {
 	}
 	[CCode (cheader_filename = "poppler.h")]
 	public class Layer : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Layer ();
 		public int get_radio_button_group_id ();
 		public unowned string get_title ();
 		public void hide ();
@@ -276,6 +292,8 @@ namespace Poppler {
 	}
 	[CCode (cheader_filename = "poppler.h")]
 	public class Page : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Page ();
 		public unowned GLib.List find_text (string text);
 		public static void free_annot_mapping (GLib.List list);
 		public static void free_form_field_mapping (GLib.List list);
diff --git a/vapi/vte.vapi b/vapi/vte.vapi
index ac8976f..b44cf17 100644
--- a/vapi/vte.vapi
+++ b/vapi/vte.vapi
@@ -14,6 +14,8 @@ namespace Vte {
 	}
 	[CCode (cheader_filename = "vte/reaper.h")]
 	public class Reaper : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected Reaper ();
 		public static int add_child (GLib.Pid pid);
 		public static unowned Vte.Reaper @get ();
 		public virtual signal void child_exited (int p0, int p1);
diff --git a/vapi/webkit-1.0.vapi b/vapi/webkit-1.0.vapi
index 93e1f78..f6fbdeb 100644
--- a/vapi/webkit-1.0.vapi
+++ b/vapi/webkit-1.0.vapi
@@ -31,9 +31,13 @@ namespace WebKit {
 	}
 	[CCode (cheader_filename = "webkit/webkit.h")]
 	public class GeolocationPolicyDecision : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected GeolocationPolicyDecision ();
 	}
 	[CCode (cheader_filename = "webkit/webkit.h")]
 	public class HitTestResult : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected HitTestResult ();
 		[NoAccessorMethod]
 		public WebKit.HitTestResultContext context { get; construct; }
 		[NoAccessorMethod]
@@ -65,6 +69,8 @@ namespace WebKit {
 	}
 	[CCode (cheader_filename = "webkit/webkit.h")]
 	public class SecurityOrigin : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected SecurityOrigin ();
 		public unowned GLib.List get_all_web_databases ();
 		public unowned string get_host ();
 		public uint get_port ();
@@ -80,10 +86,14 @@ namespace WebKit {
 	}
 	[CCode (cheader_filename = "webkit/webkit.h")]
 	public class SoupAuthDialog : GLib.Object, Soup.SessionFeature {
+		[CCode (has_construct_function = false)]
+		protected SoupAuthDialog ();
 		public virtual signal unowned Gtk.Widget current_toplevel (Soup.Message message);
 	}
 	[CCode (cheader_filename = "webkit/webkit.h")]
 	public class WebBackForwardList : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected WebBackForwardList ();
 		public void add_item (WebKit.WebHistoryItem history_item);
 		public void clear ();
 		public bool contains_item (WebKit.WebHistoryItem history_item);
@@ -121,6 +131,8 @@ namespace WebKit {
 	}
 	[CCode (cheader_filename = "webkit/webkit.h")]
 	public class WebDatabase : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected WebDatabase ();
 		public unowned string get_display_name ();
 		public uint64 get_expected_size ();
 		public unowned string get_filename ();
@@ -194,6 +206,8 @@ namespace WebKit {
 	}
 	[CCode (cheader_filename = "webkit/webkit.h")]
 	public class WebInspector : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected WebInspector ();
 		public void close ();
 		public unowned string get_inspected_uri ();
 		public unowned WebKit.WebView get_web_view ();
@@ -214,6 +228,8 @@ namespace WebKit {
 	}
 	[CCode (cheader_filename = "webkit/webkit.h")]
 	public class WebNavigationAction : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected WebNavigationAction ();
 		public int get_button ();
 		public int get_modifier_state ();
 		public unowned string get_original_uri ();
@@ -229,6 +245,8 @@ namespace WebKit {
 	}
 	[CCode (cheader_filename = "webkit/webkit.h")]
 	public class WebPolicyDecision : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected WebPolicyDecision ();
 		public void download ();
 		public void ignore ();
 		public void use ();
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala
index e9b518d..194d2d7 100644
--- a/vapigen/valagidlparser.vala
+++ b/vapigen/valagidlparser.vala
@@ -1251,6 +1251,15 @@ public class Vala.GIdlParser : CodeVisitor {
 
 		handle_async_methods (cl);
 
+		if (cl.default_construction_method == null) {
+			// always provide constructor in generated bindings
+			// to indicate that implicit Object () chainup is allowed
+			var cm = new CreationMethod (null, null, cl.source_reference);
+			cm.has_construct_function = false;
+			cm.access = SymbolAccessibility.PROTECTED;
+			cl.add_method (cm);
+		}
+
 		current_data_type = null;
 		current_type_symbol_set = null;
 	}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]