[vala/wip/issue/607: 15/15] Renergate GIR-based bindings to pick up array length-types




commit 543ac902fda8a6434f0fd4a7ce3541097367033a
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Thu Apr 15 16:49:14 2021 +0200

    Renergate GIR-based bindings to pick up array length-types

 vapi/clutter-1.0.vapi               |  48 +++++++--------
 vapi/gdk-pixbuf-2.0.vapi            |  20 +++---
 vapi/gio-2.0.vapi                   | 120 ++++++++++++++++++------------------
 vapi/gobject-introspection-1.0.vapi |   2 +-
 vapi/goocanvas-2.0.vapi             |   8 +--
 vapi/graphene-gobject-1.0.vapi      |   8 +--
 vapi/gst-editing-services-1.0.vapi  |   8 +--
 vapi/gstreamer-1.0.vapi             |  30 ++++-----
 vapi/gstreamer-audio-1.0.vapi       |  24 ++++----
 vapi/gstreamer-base-1.0.vapi        |  28 ++++-----
 vapi/gstreamer-pbutils-1.0.vapi     |  30 ++++-----
 vapi/gstreamer-rtp-1.0.vapi         |  48 +++++++--------
 vapi/gstreamer-rtsp-1.0.vapi        |  16 ++---
 vapi/gstreamer-rtsp-server-1.0.vapi |   2 +-
 vapi/gstreamer-sdp-1.0.vapi         |  22 +++----
 vapi/gstreamer-tag-1.0.vapi         |  10 +--
 vapi/gstreamer-video-1.0.vapi       |  20 +++---
 vapi/gtk+-3.0.vapi                  |  92 +++++++++++++--------------
 vapi/gtk4.vapi                      | 108 ++++++++++++++++----------------
 vapi/harfbuzz-gobject.vapi          |  98 ++++++++++++++---------------
 vapi/javascriptcoregtk-4.0.vapi     |   8 +--
 vapi/json-glib-1.0.vapi             |   4 +-
 vapi/libgsf-1.vapi                  |  20 +++---
 vapi/libnotify.vapi                 |   2 +-
 vapi/libpeas-1.0.vapi               |  10 +--
 vapi/libsoup-2.4.vapi               |  32 +++++-----
 vapi/pango.vapi                     |   2 +-
 vapi/poppler-glib.vapi              |  26 ++++----
 vapi/rest-0.7.vapi                  |   4 +-
 vapi/webkit2gtk-4.0.vapi            |   2 +-
 30 files changed, 426 insertions(+), 426 deletions(-)
---
diff --git a/vapi/clutter-1.0.vapi b/vapi/clutter-1.0.vapi
index 80a1fc36a..60b46e936 100644
--- a/vapi/clutter-1.0.vapi
+++ b/vapi/clutter-1.0.vapi
@@ -4625,15 +4625,15 @@ namespace Clutter {
                [CCode (cheader_filename = "clutter/clutter.h")]
                [Version (since = "1.10")]
                public static unowned Clutter.PaintNode get_paint_node (GLib.Value value);
-               [CCode (array_length_pos = 1.1, array_length_type = "gsize", cheader_filename = 
"clutter/clutter.h")]
+               [CCode (array_length_pos = 1.1, cheader_filename = "clutter/clutter.h")]
                [Version (since = "0.8")]
-               public static unowned float[] get_shader_float (GLib.Value value);
-               [CCode (array_length_pos = 1.1, array_length_type = "gsize", cheader_filename = 
"clutter/clutter.h")]
+               public static unowned float[:size_t] get_shader_float (GLib.Value value);
+               [CCode (array_length_pos = 1.1, cheader_filename = "clutter/clutter.h")]
                [Version (since = "0.8")]
-               public static unowned int[] get_shader_int (GLib.Value value);
-               [CCode (array_length_pos = 1.1, array_length_type = "gsize", cheader_filename = 
"clutter/clutter.h")]
+               public static unowned int[:size_t] get_shader_int (GLib.Value value);
+               [CCode (array_length_pos = 1.1, cheader_filename = "clutter/clutter.h")]
                [Version (since = "0.8")]
-               public static unowned float[] get_shader_matrix (GLib.Value value);
+               public static unowned float[:size_t] get_shader_matrix (GLib.Value value);
                [CCode (cheader_filename = "clutter/clutter.h")]
                [Version (since = "0.8")]
                public static unowned Clutter.Units? get_units (GLib.Value value);
@@ -5697,7 +5697,7 @@ namespace Clutter {
                public BehaviourPath.with_description (Clutter.Alpha? alpha, string desc);
                [CCode (has_construct_function = false, type = "ClutterBehaviour*")]
                [Version (since = "1.0")]
-               public BehaviourPath.with_knots (Clutter.Alpha? alpha, [CCode (array_length_cname = 
"n_knots", array_length_pos = 2.1, array_length_type = "guint")] Clutter.Knot[] knots);
+               public BehaviourPath.with_knots (Clutter.Alpha? alpha, [CCode (array_length_cname = 
"n_knots", array_length_pos = 2.1)] Clutter.Knot[:uint] knots);
                public Clutter.Path path { get; set; }
                public virtual signal void knot_reached (uint knot_num);
        }
@@ -5826,7 +5826,7 @@ namespace Clutter {
                [Version (deprecated = true, deprecated_since = "1.10", since = "1.2")]
                public void pack_before (Clutter.Actor actor, Clutter.Actor? sibling, ...);
                [Version (deprecated = true, deprecated_since = "1.10", since = "1.2")]
-               public void packv (Clutter.Actor actor, [CCode (array_length_cname = "n_properties", 
array_length_pos = 1.5, array_length_type = "guint")] string[] properties, [CCode (array_length_cname = 
"n_properties", array_length_pos = 1.5, array_length_type = "guint")] GLib.Value[] values);
+               public void packv (Clutter.Actor actor, [CCode (array_length_cname = "n_properties", 
array_length_pos = 1.5)] string[:uint] properties, [CCode (array_length_cname = "n_properties", 
array_length_pos = 1.5)] GLib.Value[:uint] values);
                [Version (deprecated = true, deprecated_since = "1.10", since = "1.2")]
                public void set_color (Clutter.Color? color);
                [Version (deprecated = true, deprecated_since = "1.10", since = "1.2")]
@@ -6614,9 +6614,9 @@ namespace Clutter {
                public void get_key_frame (uint index_, out double key, out Clutter.AnimationMode mode, out 
GLib.Value value);
                public uint get_n_key_frames ();
                public void set_key_frame (uint index_, double key, Clutter.AnimationMode mode, GLib.Value 
value);
-               public void set_key_frames ([CCode (array_length_cname = "n_key_frames", array_length_pos = 
0.5, array_length_type = "guint")] double[] key_frames);
-               public void set_modes ([CCode (array_length_cname = "n_modes", array_length_pos = 0.5, 
array_length_type = "guint")] Clutter.AnimationMode[] modes);
-               public void set_values ([CCode (array_length_cname = "n_values", array_length_pos = 0.5, 
array_length_type = "guint")] GLib.Value[] values);
+               public void set_key_frames ([CCode (array_length_cname = "n_key_frames", array_length_pos = 
0.5)] double[:uint] key_frames);
+               public void set_modes ([CCode (array_length_cname = "n_modes", array_length_pos = 0.5)] 
Clutter.AnimationMode[:uint] modes);
+               public void set_values ([CCode (array_length_cname = "n_values", array_length_pos = 0.5)] 
GLib.Value[:uint] values);
        }
        [CCode (cheader_filename = "clutter/clutter.h", type_id = "clutter_layout_manager_get_type ()")]
        [Version (since = "1.2")]
@@ -6643,8 +6643,8 @@ namespace Clutter {
                public virtual GLib.Type get_child_meta_type ();
                public virtual void get_preferred_height (Clutter.Container container, float for_width, out 
float min_height_p, out float nat_height_p);
                public virtual void get_preferred_width (Clutter.Container container, float for_height, out 
float min_width_p, out float nat_width_p);
-               [CCode (array_length_pos = 0.1, array_length_type = "guint")]
-               public GLib.ParamSpec[] list_child_properties ();
+               [CCode (array_length_pos = 0.1)]
+               public GLib.ParamSpec[:uint] list_child_properties ();
                public virtual void set_container (Clutter.Container? container);
                [HasEmitter]
                public virtual signal void layout_changed ();
@@ -6663,7 +6663,7 @@ namespace Clutter {
                [CCode (has_construct_function = false, type = "ClutterModel*")]
                public ListModel (uint n_columns, ...);
                [CCode (cname = "clutter_list_model_newv", has_construct_function = false, type = 
"ClutterModel*")]
-               public ListModel.newv ([CCode (array_length_cname = "n_columns", array_length_pos = 0.5, 
array_length_type = "guint")] GLib.Type[] types, [CCode (array_length_cname = "n_columns", array_length_pos = 
0.5, array_length_type = "guint")] string[] names);
+               public ListModel.newv ([CCode (array_length_cname = "n_columns", array_length_pos = 0.5)] 
GLib.Type[:uint] types, [CCode (array_length_cname = "n_columns", array_length_pos = 0.5)] string[:uint] 
names);
        }
        [CCode (cheader_filename = "clutter/clutter.h", type_id = "clutter_model_get_type ()")]
        [Version (deprecated = true, deprecated_since = "1.24", since = "0.6")]
@@ -6671,7 +6671,7 @@ namespace Clutter {
                [CCode (has_construct_function = false)]
                protected Model ();
                public void append (...);
-               public void appendv ([CCode (array_length_cname = "n_columns", array_length_pos = 0.5, 
array_length_type = "guint")] uint[] columns, [CCode (array_length_cname = "n_columns", array_length_pos = 
0.5, array_length_type = "guint")] GLib.Value[] values);
+               public void appendv ([CCode (array_length_cname = "n_columns", array_length_pos = 0.5)] 
uint[:uint] columns, [CCode (array_length_cname = "n_columns", array_length_pos = 0.5)] GLib.Value[:uint] 
values);
                public bool filter_iter (Clutter.ModelIter iter);
                public bool filter_row (uint row);
                public void @foreach (Clutter.ModelForeachFunc func);
@@ -6689,18 +6689,18 @@ namespace Clutter {
                [NoWrapper]
                public virtual unowned Clutter.ModelIter insert_row (int index_);
                public void insert_value (uint row, uint column, GLib.Value value);
-               public void insertv (uint row, [CCode (array_length_cname = "n_columns", array_length_pos = 
1.5, array_length_type = "guint")] uint[] columns, [CCode (array_length_cname = "n_columns", array_length_pos 
= 1.5, array_length_type = "guint")] GLib.Value[] values);
+               public void insertv (uint row, [CCode (array_length_cname = "n_columns", array_length_pos = 
1.5)] uint[:uint] columns, [CCode (array_length_cname = "n_columns", array_length_pos = 1.5)] 
GLib.Value[:uint] values);
                public void prepend (...);
-               public void prependv ([CCode (array_length_cname = "n_columns", array_length_pos = 0.5, 
array_length_type = "guint")] uint[] columns, [CCode (array_length_cname = "n_columns", array_length_pos = 
0.5, array_length_type = "guint")] GLib.Value[] values);
+               public void prependv ([CCode (array_length_cname = "n_columns", array_length_pos = 0.5)] 
uint[:uint] columns, [CCode (array_length_cname = "n_columns", array_length_pos = 0.5)] GLib.Value[:uint] 
values);
                public void remove (uint row);
                [NoWrapper]
                public virtual void remove_row (uint row);
                public void resort ();
                public void set_filter (owned Clutter.ModelFilterFunc? func);
-               public void set_names ([CCode (array_length_cname = "n_columns", array_length_pos = 0.5, 
array_length_type = "guint")] string[] names);
+               public void set_names ([CCode (array_length_cname = "n_columns", array_length_pos = 0.5)] 
string[:uint] names);
                public void set_sort (int column, owned Clutter.ModelSortFunc? func);
                public void set_sorting_column (int column);
-               public void set_types ([CCode (array_length_cname = "n_columns", array_length_pos = 0.5, 
array_length_type = "guint")] GLib.Type[] types);
+               public void set_types ([CCode (array_length_cname = "n_columns", array_length_pos = 0.5)] 
GLib.Type[:uint] types);
                [Version (since = "1.0")]
                public bool filter_set { get; }
                public virtual signal void filter_changed ();
@@ -6967,7 +6967,7 @@ namespace Clutter {
                [CCode (has_construct_function = false)]
                public Script ();
                [Version (since = "0.8")]
-               public void add_search_paths ([CCode (array_length_cname = "n_paths", array_length_pos = 1.1, 
array_length_type = "gsize")] string[] paths);
+               public void add_search_paths ([CCode (array_length_cname = "n_paths", array_length_pos = 
1.1)] string[:size_t] paths);
                [Version (deprecated = true, deprecated_since = "1.12", since = "1.8")]
                public void add_states (string? name, Clutter.State state);
                public void connect_signals (void* user_data);
@@ -7745,9 +7745,9 @@ namespace Clutter {
                [Version (since = "0.8")]
                public bool has_marker (string marker_name);
                public bool is_playing ();
-               [CCode (array_length = true, array_length_pos = 1.1, array_length_type = "gsize", 
array_null_terminated = true)]
+               [CCode (array_length = true, array_length_pos = 1.1, array_null_terminated = true)]
                [Version (since = "0.8")]
-               public string[] list_markers (int msecs);
+               public string[:size_t] list_markers (int msecs);
                public void pause ();
                [Version (since = "0.8")]
                public void remove_marker (string marker_name);
@@ -7937,9 +7937,9 @@ namespace Clutter {
                public void child_set_property (Clutter.Actor child, string property, GLib.Value value);
                [Version (since = "0.8")]
                public static unowned GLib.ParamSpec class_find_child_property (GLib.ObjectClass klass, 
string property_name);
-               [CCode (array_length_pos = 1.1, array_length_type = "guint")]
+               [CCode (array_length_pos = 1.1)]
                [Version (since = "0.8")]
-               public static GLib.ParamSpec[] class_list_child_properties (GLib.ObjectClass klass);
+               public static GLib.ParamSpec[:uint] class_list_child_properties (GLib.ObjectClass klass);
                [Version (since = "1.2")]
                public virtual void create_child_meta (Clutter.Actor actor);
                [Version (since = "1.2")]
diff --git a/vapi/gdk-pixbuf-2.0.vapi b/vapi/gdk-pixbuf-2.0.vapi
index daabef10b..912a1f129 100644
--- a/vapi/gdk-pixbuf-2.0.vapi
+++ b/vapi/gdk-pixbuf-2.0.vapi
@@ -78,9 +78,9 @@ namespace Gdk {
                public GLib.HashTable<weak string,weak string> get_options ();
                [CCode (array_length = false)]
                public unowned uint8[] get_pixels ();
-               [CCode (array_length_pos = 0.1, array_length_type = "guint")]
+               [CCode (array_length_pos = 0.1)]
                [Version (since = "2.26")]
-               public unowned uint8[] get_pixels_with_length ();
+               public unowned uint8[:uint] get_pixels_with_length ();
                public int get_rowstride ();
                public int get_width ();
                [Version (since = "2.40")]
@@ -96,9 +96,9 @@ namespace Gdk {
                public void saturate_and_pixelate (Gdk.Pixbuf dest, float saturation, bool pixelate);
                public bool save (string filename, string type, ...) throws GLib.Error;
                [Version (since = "2.4")]
-               public bool save_to_buffer ([CCode (array_length_cname = "buffer_size", array_length_pos = 
1.5, array_length_type = "gsize")] out uint8[] buffer, string type, ...) throws GLib.Error;
+               public bool save_to_buffer ([CCode (array_length_cname = "buffer_size", array_length_pos = 
1.5)] out uint8[:size_t] buffer, string type, ...) throws GLib.Error;
                [Version (since = "2.4")]
-               public bool save_to_bufferv ([CCode (array_length_cname = "buffer_size", array_length_pos = 
1.5, array_length_type = "gsize")] out uint8[] buffer, string type, [CCode (array_length = false, 
array_null_terminated = true)] string[]? option_keys, [CCode (array_length = false, array_null_terminated = 
true)] string[]? option_values) throws GLib.Error;
+               public bool save_to_bufferv ([CCode (array_length_cname = "buffer_size", array_length_pos = 
1.5)] out uint8[:size_t] buffer, string type, [CCode (array_length = false, array_null_terminated = true)] 
string[]? option_keys, [CCode (array_length = false, array_null_terminated = true)] string[]? option_values) 
throws GLib.Error;
                [Version (since = "2.4")]
                public bool save_to_callback ([CCode (delegate_target_pos = 1.5)] Gdk.PixbufSaveFunc 
save_func, string type, ...) throws GLib.Error;
                [Version (since = "2.4")]
@@ -218,7 +218,7 @@ namespace Gdk {
                public PixbufLoader.with_mime_type (string mime_type) throws GLib.Error;
                [CCode (has_construct_function = false)]
                public PixbufLoader.with_type (string image_type) throws GLib.Error;
-               public bool write ([CCode (array_length_cname = "count", array_length_pos = 1.1, 
array_length_type = "gsize")] uint8[] buf) throws GLib.Error;
+               public bool write ([CCode (array_length_cname = "count", array_length_pos = 1.1)] 
uint8[:size_t] buf) throws GLib.Error;
                [Version (since = "2.30")]
                public bool write_bytes (GLib.Bytes buffer) throws GLib.Error;
                public virtual signal void area_prepared ();
@@ -286,9 +286,9 @@ namespace Gdk {
                public uint32 height;
                [CCode (array_length = false)]
                public weak uint8[] pixel_data;
-               public bool deserialize ([CCode (array_length_cname = "stream_length", array_length_pos = 
0.5, array_length_type = "guint")] uint8[] stream) throws GLib.Error;
-               [CCode (array_length_pos = 0.1, array_length_type = "guint")]
-               public uint8[] serialize ();
+               public bool deserialize ([CCode (array_length_cname = "stream_length", array_length_pos = 
0.5)] uint8[:uint] stream) throws GLib.Error;
+               [CCode (array_length_pos = 0.1)]
+               public uint8[:uint] serialize ();
                public GLib.StringBuilder to_csource (string name, Gdk.PixdataDumpType dump_type);
        }
        [CCode (cheader_filename = "gdk-pixbuf/gdk-pixbuf.h", cprefix = "GDK_COLORSPACE_", type_id = 
"gdk_colorspace_get_type ()")]
@@ -377,7 +377,7 @@ namespace Gdk {
        [CCode (cheader_filename = "gdk-pixbuf/gdk-pixbuf.h", has_target = false, has_typedef = false)]
        public delegate unowned Gdk.Pixbuf PixbufModuleLoadFunc (void* f) throws GLib.Error;
        [CCode (cheader_filename = "gdk-pixbuf/gdk-pixbuf.h", has_target = false, has_typedef = false)]
-       public delegate bool PixbufModuleLoadIncrementFunc (void* context, [CCode (array_length_cname = 
"size", array_length_pos = 2.1, array_length_type = "guint", type = "const guchar*")] uint8[] buf) throws 
GLib.Error;
+       public delegate bool PixbufModuleLoadIncrementFunc (void* context, [CCode (array_length_cname = 
"size", array_length_pos = 2.1, type = "const guchar*")] uint8[:uint] buf) throws GLib.Error;
        [CCode (cheader_filename = "gdk-pixbuf/gdk-pixbuf.h", has_target = false, has_typedef = false)]
        public delegate unowned Gdk.Pixbuf PixbufModuleLoadXpmDataFunc (string data);
        [CCode (cheader_filename = "gdk-pixbuf/gdk-pixbuf.h", instance_pos = 2.9)]
@@ -397,7 +397,7 @@ namespace Gdk {
        public delegate void PixbufModuleUpdatedFunc (Gdk.Pixbuf pixbuf, int x, int y, int width, int height);
        [CCode (cheader_filename = "gdk-pixbuf/gdk-pixbuf.h", error_pos = 1.8, instance_pos = 1.9)]
        [Version (since = "2.4")]
-       public delegate bool PixbufSaveFunc ([CCode (array_length_cname = "count", array_length_pos = 1.1, 
array_length_type = "gsize")] uint8[] buf) throws GLib.Error;
+       public delegate bool PixbufSaveFunc ([CCode (array_length_cname = "count", array_length_pos = 1.1)] 
uint8[:size_t] buf) throws GLib.Error;
        [CCode (cheader_filename = "gdk-pixbuf/gdk-pixbuf.h", cname = "GDK_PIXBUF_MAGIC_NUMBER")]
        public const int PIXBUF_MAGIC_NUMBER;
        [CCode (cheader_filename = "gdk-pixbuf/gdk-pixbuf.h", cname = "GDK_PIXBUF_MAJOR")]
diff --git a/vapi/gio-2.0.vapi b/vapi/gio-2.0.vapi
index b5e4aef87..05ba08c92 100644
--- a/vapi/gio-2.0.vapi
+++ b/vapi/gio-2.0.vapi
@@ -54,7 +54,7 @@ namespace GLib {
                [Version (since = "2.34")]
                public static GLib.Icon get_symbolic_icon (string type);
                [CCode (cheader_filename = "gio/gio.h")]
-               public static string guess (string? filename, [CCode (array_length_cname = "data_size", 
array_length_pos = 2.5, array_length_type = "gsize")] uint8[]? data, out bool result_uncertain);
+               public static string guess (string? filename, [CCode (array_length_cname = "data_size", 
array_length_pos = 2.5)] uint8[:size_t]? data, out bool result_uncertain);
                [CCode (array_length = false, array_null_terminated = true, cheader_filename = "gio/gio.h")]
                [Version (since = "2.18")]
                public static string[] guess_for_tree (GLib.File root);
@@ -506,9 +506,9 @@ namespace GLib {
                public virtual async ssize_t fill_async (ssize_t count, int io_priority = 
GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.Error;
                public size_t get_available ();
                public size_t get_buffer_size ();
-               public size_t peek ([CCode (array_length_cname = "count", array_length_pos = 2.1, 
array_length_type = "gsize")] uint8[] buffer, size_t offset = 0);
-               [CCode (array_length_pos = 0.1, array_length_type = "gsize")]
-               public unowned uint8[] peek_buffer ();
+               public size_t peek ([CCode (array_length_cname = "count", array_length_pos = 2.1)] 
uint8[:size_t] buffer, size_t offset = 0);
+               [CCode (array_length_pos = 0.1)]
+               public unowned uint8[:size_t] peek_buffer ();
                public int read_byte (GLib.Cancellable? cancellable = null) throws GLib.Error;
                public void set_buffer_size (size_t size);
                [CCode (has_construct_function = false, type = "GInputStream*")]
@@ -799,10 +799,10 @@ namespace GLib {
        public class DBusMessage : GLib.Object {
                [CCode (has_construct_function = false)]
                public DBusMessage ();
-               public static ssize_t bytes_needed ([CCode (array_length_cname = "blob_len", array_length_pos 
= 1.1, array_length_type = "gsize")] uint8[] blob) throws GLib.Error;
+               public static ssize_t bytes_needed ([CCode (array_length_cname = "blob_len", array_length_pos 
= 1.1)] uint8[:size_t] blob) throws GLib.Error;
                public GLib.DBusMessage copy () throws GLib.Error;
                [CCode (has_construct_function = false)]
-               public DBusMessage.from_blob ([CCode (array_length_cname = "blob_len", array_length_pos = 
1.5, array_length_type = "gsize")] uint8[] blob, GLib.DBusCapabilityFlags capabilities) throws GLib.Error;
+               public DBusMessage.from_blob ([CCode (array_length_cname = "blob_len", array_length_pos = 
1.5)] uint8[:size_t] blob, GLib.DBusCapabilityFlags capabilities) throws GLib.Error;
                public unowned string? get_arg0 ();
                public unowned GLib.Variant? get_body ();
                public GLib.DBusMessageByteOrder get_byte_order ();
@@ -854,8 +854,8 @@ namespace GLib {
                public void set_unix_fd_list (GLib.UnixFDList? fd_list);
                [CCode (has_construct_function = false)]
                public DBusMessage.@signal (string path, string interface_, string @signal);
-               [CCode (array_length_pos = 0.5, array_length_type = "gsize")]
-               public uint8[] to_blob (GLib.DBusCapabilityFlags capabilities) throws GLib.Error;
+               [CCode (array_length_pos = 0.5)]
+               public uint8[:size_t] to_blob (GLib.DBusCapabilityFlags capabilities) throws GLib.Error;
                public bool to_gerror () throws GLib.Error;
                public bool locked { get; }
        }
@@ -1687,11 +1687,11 @@ namespace GLib {
                public bool has_pending ();
                public bool is_closed ();
                [CCode (vfunc_name = "read_fn")]
-               public abstract ssize_t read ([CCode (array_length_cname = "count", array_length_pos = 1.5, 
array_length_type = "gsize")] uint8[] buffer, GLib.Cancellable? cancellable = null) throws GLib.IOError;
-               public bool read_all ([CCode (array_length_cname = "count", array_length_pos = 1.5, 
array_length_type = "gsize")] uint8[] buffer, out size_t bytes_read, GLib.Cancellable? cancellable = null) 
throws GLib.IOError;
+               public abstract ssize_t read ([CCode (array_length_cname = "count", array_length_pos = 1.5)] 
uint8[:size_t] buffer, GLib.Cancellable? cancellable = null) throws GLib.IOError;
+               public bool read_all ([CCode (array_length_cname = "count", array_length_pos = 1.5)] 
uint8[:size_t] buffer, out size_t bytes_read, GLib.Cancellable? cancellable = null) throws GLib.IOError;
                [Version (since = "2.44")]
-               public async bool read_all_async ([CCode (array_length_cname = "count", array_length_pos = 
1.5, array_length_type = "gsize")] uint8[] buffer, int io_priority, GLib.Cancellable? cancellable, out size_t 
bytes_read) throws GLib.Error;
-               public virtual async ssize_t read_async ([CCode (array_length_cname = "count", 
array_length_pos = 1.5, array_length_type = "gsize")] uint8[]? buffer, int io_priority = 
GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
+               public async bool read_all_async ([CCode (array_length_cname = "count", array_length_pos = 
1.5)] uint8[:size_t] buffer, int io_priority, GLib.Cancellable? cancellable, out size_t bytes_read) throws 
GLib.Error;
+               public virtual async ssize_t read_async ([CCode (array_length_cname = "count", 
array_length_pos = 1.5)] uint8[:size_t]? buffer, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? 
cancellable = null) throws GLib.IOError;
                [Version (since = "2.34")]
                public GLib.Bytes read_bytes (size_t count, GLib.Cancellable? cancellable = null) throws 
GLib.Error;
                [Version (since = "2.34")]
@@ -1722,7 +1722,7 @@ namespace GLib {
                [Version (since = "2.46")]
                public void sort (GLib.CompareDataFunc<GLib.Object> compare_func);
                [Version (since = "2.44")]
-               public void splice (uint position, uint n_removals, [CCode (array_length_cname = 
"n_additions", array_length_pos = 3.1, array_length_type = "guint")] GLib.Object[] additions);
+               public void splice (uint position, uint n_removals, [CCode (array_length_cname = 
"n_additions", array_length_pos = 3.1)] GLib.Object[:uint] additions);
                [NoAccessorMethod]
                [Version (since = "2.44")]
                public GLib.Type item_type { get; construct; }
@@ -1733,12 +1733,12 @@ namespace GLib {
                public MemoryInputStream ();
                [Version (since = "2.34")]
                public void add_bytes (GLib.Bytes bytes);
-               public void add_data ([CCode (array_length_cname = "len", array_length_pos = 1.5, 
array_length_type = "gssize")] owned uint8[] data, GLib.DestroyNotify? destroy = GLib.g_free);
+               public void add_data ([CCode (array_length_cname = "len", array_length_pos = 1.5)] owned 
uint8[:ssize_t] data, GLib.DestroyNotify? destroy = GLib.g_free);
                [CCode (has_construct_function = false, type = "GInputStream*")]
                [Version (since = "2.34")]
                public MemoryInputStream.from_bytes (GLib.Bytes bytes);
                [CCode (has_construct_function = false, type = "GInputStream*")]
-               public MemoryInputStream.from_data ([CCode (array_length_cname = "len", array_length_pos = 
1.5, array_length_type = "gssize")] owned uint8[] data, GLib.DestroyNotify? destroy = GLib.g_free);
+               public MemoryInputStream.from_data ([CCode (array_length_cname = "len", array_length_pos = 
1.5)] owned uint8[:ssize_t] data, GLib.DestroyNotify? destroy = GLib.g_free);
        }
        [CCode (cheader_filename = "gio/gio.h", type_id = "g_memory_output_stream_get_type ()")]
        public class MemoryOutputStream : GLib.OutputStream, GLib.PollableOutputStream, GLib.Seekable {
@@ -2015,22 +2015,22 @@ namespace GLib {
                public virtual ssize_t splice (GLib.InputStream source, GLib.OutputStreamSpliceFlags flags, 
GLib.Cancellable? cancellable = null) throws GLib.IOError;
                public virtual async ssize_t splice_async (GLib.InputStream source, 
GLib.OutputStreamSpliceFlags flags, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = 
null) throws GLib.IOError;
                [CCode (vfunc_name = "write_fn")]
-               public abstract ssize_t write ([CCode (array_length_cname = "count", array_length_pos = 1.5, 
array_length_type = "gsize")] uint8[] buffer, GLib.Cancellable? cancellable = null) throws GLib.IOError;
-               public bool write_all ([CCode (array_length_cname = "count", array_length_pos = 1.5, 
array_length_type = "gsize")] uint8[] buffer, out size_t bytes_written, GLib.Cancellable? cancellable = null) 
throws GLib.IOError;
+               public abstract ssize_t write ([CCode (array_length_cname = "count", array_length_pos = 1.5)] 
uint8[:size_t] buffer, GLib.Cancellable? cancellable = null) throws GLib.IOError;
+               public bool write_all ([CCode (array_length_cname = "count", array_length_pos = 1.5)] 
uint8[:size_t] buffer, out size_t bytes_written, GLib.Cancellable? cancellable = null) throws GLib.IOError;
                [Version (since = "2.44")]
-               public async bool write_all_async ([CCode (array_length_cname = "count", array_length_pos = 
1.5, array_length_type = "gsize")] uint8[] buffer, int io_priority, GLib.Cancellable? cancellable, out size_t 
bytes_written) throws GLib.Error;
-               public virtual async ssize_t write_async ([CCode (array_length_cname = "count", 
array_length_pos = 1.5, array_length_type = "gsize")] uint8[]? buffer, int io_priority = 
GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
+               public async bool write_all_async ([CCode (array_length_cname = "count", array_length_pos = 
1.5)] uint8[:size_t] buffer, int io_priority, GLib.Cancellable? cancellable, out size_t bytes_written) throws 
GLib.Error;
+               public virtual async ssize_t write_async ([CCode (array_length_cname = "count", 
array_length_pos = 1.5)] uint8[:size_t]? buffer, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? 
cancellable = null) throws GLib.IOError;
                public ssize_t write_bytes (GLib.Bytes bytes, GLib.Cancellable? cancellable = null) throws 
GLib.Error;
                public async ssize_t write_bytes_async (GLib.Bytes bytes, int io_priority = 
GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.Error;
                [CCode (vfunc_name = "writev_fn")]
                [Version (since = "2.60")]
-               public virtual bool writev ([CCode (array_length_cname = "n_vectors", array_length_pos = 1.5, 
array_length_type = "gsize")] GLib.OutputVector[] vectors, out size_t bytes_written, GLib.Cancellable? 
cancellable = null) throws GLib.Error;
+               public virtual bool writev ([CCode (array_length_cname = "n_vectors", array_length_pos = 
1.5)] GLib.OutputVector[:size_t] vectors, out size_t bytes_written, GLib.Cancellable? cancellable = null) 
throws GLib.Error;
                [Version (since = "2.60")]
-               public bool writev_all ([CCode (array_length_cname = "n_vectors", array_length_pos = 1.5, 
array_length_type = "gsize")] GLib.OutputVector[] vectors, out size_t bytes_written, GLib.Cancellable? 
cancellable = null) throws GLib.Error;
+               public bool writev_all ([CCode (array_length_cname = "n_vectors", array_length_pos = 1.5)] 
GLib.OutputVector[:size_t] vectors, out size_t bytes_written, GLib.Cancellable? cancellable = null) throws 
GLib.Error;
                [Version (since = "2.60")]
-               public async bool writev_all_async ([CCode (array_length_cname = "n_vectors", 
array_length_pos = 1.5, array_length_type = "gsize")] GLib.OutputVector[] vectors, int io_priority = 
GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null, out size_t bytes_written) throws GLib.Error;
+               public async bool writev_all_async ([CCode (array_length_cname = "n_vectors", 
array_length_pos = 1.5)] GLib.OutputVector[:size_t] vectors, int io_priority = GLib.Priority.DEFAULT, 
GLib.Cancellable? cancellable = null, out size_t bytes_written) throws GLib.Error;
                [Version (since = "2.60")]
-               public virtual async bool writev_async ([CCode (array_length_cname = "n_vectors", 
array_length_pos = 1.5, array_length_type = "gsize")] GLib.OutputVector[] vectors, int io_priority = 
GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null, out size_t bytes_written) throws GLib.Error;
+               public virtual async bool writev_async ([CCode (array_length_cname = "n_vectors", 
array_length_pos = 1.5)] GLib.OutputVector[:size_t] vectors, int io_priority = GLib.Priority.DEFAULT, 
GLib.Cancellable? cancellable = null, out size_t bytes_written) throws GLib.Error;
        }
        [CCode (cheader_filename = "gio/gio.h", type_id = "g_permission_get_type ()")]
        public abstract class Permission : GLib.Object {
@@ -2588,22 +2588,22 @@ namespace GLib {
                [Version (since = "2.56")]
                public bool leave_multicast_group_ssm (GLib.InetAddress group, GLib.InetAddress? 
source_specific, string? iface) throws GLib.Error;
                public bool listen () throws GLib.Error;
-               public ssize_t receive ([CCode (array_length_cname = "size", array_length_pos = 1.5, 
array_length_type = "gsize")] uint8[] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
-               public ssize_t receive_from (out GLib.SocketAddress address, [CCode (array_length_cname = 
"size", array_length_pos = 2.5, array_length_type = "gsize")] uint8[] buffer, GLib.Cancellable? cancellable = 
null) throws GLib.Error;
+               public ssize_t receive ([CCode (array_length_cname = "size", array_length_pos = 1.5)] 
uint8[:size_t] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public ssize_t receive_from (out GLib.SocketAddress address, [CCode (array_length_cname = 
"size", array_length_pos = 2.5)] uint8[:size_t] buffer, GLib.Cancellable? cancellable = null) throws 
GLib.Error;
                public ssize_t receive_message (out GLib.SocketAddress? address, [CCode (array_length_cname = 
"num_vectors", array_length_pos = 2.5)] GLib.InputVector[] vectors, [CCode (array_length_cname = 
"num_messages", array_length_pos = 3.5)] out GLib.SocketControlMessage[]? messages, ref int flags, 
GLib.Cancellable? cancellable = null) throws GLib.Error;
                [Version (since = "2.48")]
-               public int receive_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 
1.5, array_length_type = "guint")] GLib.InputMessage[] messages, int flags, GLib.Cancellable? cancellable = 
null) throws GLib.Error;
+               public int receive_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 
1.5)] GLib.InputMessage[:uint] messages, int flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
                [Version (since = "2.26")]
-               public ssize_t receive_with_blocking ([CCode (array_length_cname = "size", array_length_pos = 
1.5, array_length_type = "gsize")] uint8[] buffer, bool blocking, GLib.Cancellable? cancellable = null) 
throws GLib.Error;
-               public ssize_t send ([CCode (array_length_cname = "size", array_length_pos = 1.5, 
array_length_type = "gsize")] uint8[] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public ssize_t receive_with_blocking ([CCode (array_length_cname = "size", array_length_pos = 
1.5)] uint8[:size_t] buffer, bool blocking, GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public ssize_t send ([CCode (array_length_cname = "size", array_length_pos = 1.5)] 
uint8[:size_t] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
                public ssize_t send_message (GLib.SocketAddress? address, [CCode (array_length_cname = 
"num_vectors", array_length_pos = 2.5)] GLib.OutputVector[] vectors, [CCode (array_length_cname = 
"num_messages", array_length_pos = 3.5)] GLib.SocketControlMessage[]? messages, int flags, GLib.Cancellable? 
cancellable = null) throws GLib.Error;
                [Version (since = "2.60")]
                public GLib.PollableReturn send_message_with_timeout (GLib.SocketAddress? address, [CCode 
(array_length_cname = "num_vectors", array_length_pos = 2.5)] GLib.OutputVector[] vectors, [CCode 
(array_length_cname = "num_messages", array_length_pos = 3.5)] GLib.SocketControlMessage[]? messages, int 
flags, int64 timeout_us, out size_t bytes_written, GLib.Cancellable? cancellable = null) throws GLib.Error;
                [Version (since = "2.44")]
-               public int send_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 
1.5, array_length_type = "guint")] GLib.OutputMessage[] messages, int flags, GLib.Cancellable? cancellable = 
null) throws GLib.Error;
-               public ssize_t send_to (GLib.SocketAddress? address, [CCode (array_length_cname = "size", 
array_length_pos = 2.5, array_length_type = "gsize")] uint8[] buffer, GLib.Cancellable? cancellable = null) 
throws GLib.Error;
+               public int send_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 
1.5)] GLib.OutputMessage[:uint] messages, int flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public ssize_t send_to (GLib.SocketAddress? address, [CCode (array_length_cname = "size", 
array_length_pos = 2.5)] uint8[:size_t] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
                [Version (since = "2.26")]
-               public ssize_t send_with_blocking ([CCode (array_length_cname = "size", array_length_pos = 
1.5, array_length_type = "gsize")] uint8[] buffer, bool blocking, GLib.Cancellable? cancellable = null) 
throws GLib.Error;
+               public ssize_t send_with_blocking ([CCode (array_length_cname = "size", array_length_pos = 
1.5)] uint8[:size_t] buffer, bool blocking, GLib.Cancellable? cancellable = null) throws GLib.Error;
                public void set_blocking (bool blocking);
                [Version (since = "2.32")]
                public void set_broadcast (bool broadcast);
@@ -2748,7 +2748,7 @@ namespace GLib {
        public abstract class SocketControlMessage : GLib.Object {
                [CCode (has_construct_function = false)]
                protected SocketControlMessage ();
-               public static GLib.SocketControlMessage deserialize (int level, int type, [CCode 
(array_length_cname = "size", array_length_pos = 2.5, array_length_type = "gsize")] uint8[] data);
+               public static GLib.SocketControlMessage deserialize (int level, int type, [CCode 
(array_length_cname = "size", array_length_pos = 2.5)] uint8[:size_t] data);
                public virtual int get_level ();
                public int get_msg_type ();
                public virtual size_t get_size ();
@@ -3186,14 +3186,14 @@ namespace GLib {
                public virtual unowned string get_default_warning ();
                public unowned string get_description ();
                public GLib.TlsPasswordFlags get_flags ();
-               [CCode (array_length_pos = 0.1, array_length_type = "gsize")]
-               public virtual unowned uint8[] get_value ();
+               [CCode (array_length_pos = 0.1)]
+               public virtual unowned uint8[:size_t] get_value ();
                public unowned string get_warning ();
                public void set_description (string description);
                public void set_flags (GLib.TlsPasswordFlags flags);
-               public void set_value ([CCode (array_length_cname = "length", array_length_pos = 1.1, 
array_length_type = "gssize")] uint8[] value);
+               public void set_value ([CCode (array_length_cname = "length", array_length_pos = 1.1)] 
uint8[:ssize_t] value);
                [CCode (vfunc_name = "set_value")]
-               public virtual void set_value_full ([CCode (array_length_cname = "length", array_length_pos = 
1.5, array_length_type = "gssize")] owned uint8[] value, GLib.DestroyNotify? destroy = GLib.free);
+               public virtual void set_value_full ([CCode (array_length_cname = "length", array_length_pos = 
1.5)] owned uint8[:ssize_t] value, GLib.DestroyNotify? destroy = GLib.free);
                public void set_warning (string warning);
                public string description { get; set; }
                public GLib.TlsPasswordFlags flags { get; set; }
@@ -3456,7 +3456,7 @@ namespace GLib {
        [CCode (cheader_filename = "gio/gio.h", type_id = "g_converter_get_type ()")]
        [Version (since = "2.24")]
        public interface Converter : GLib.Object {
-               public abstract GLib.ConverterResult convert ([CCode (array_length_cname = "inbuf_size", 
array_length_pos = 1.5, array_length_type = "gsize")] uint8[] inbuf, [CCode (array_length_cname = 
"outbuf_size", array_length_pos = 2.5, array_length_type = "gsize")] uint8[] outbuf, GLib.ConverterFlags 
flags, out size_t bytes_read, out size_t bytes_written) throws GLib.Error;
+               public abstract GLib.ConverterResult convert ([CCode (array_length_cname = "inbuf_size", 
array_length_pos = 1.5)] uint8[:size_t] inbuf, [CCode (array_length_cname = "outbuf_size", array_length_pos = 
2.5)] uint8[:size_t] outbuf, GLib.ConverterFlags flags, out size_t bytes_read, out size_t bytes_written) 
throws GLib.Error;
                public abstract void reset ();
        }
        [CCode (cheader_filename = "gio/gio.h", type_id = "g_dbus_interface_get_type ()")]
@@ -3517,12 +3517,12 @@ namespace GLib {
                public virtual GLib.DatagramBasedSource datagram_create_source (GLib.IOCondition condition, 
GLib.Cancellable? cancellable = null);
                [CCode (vfunc_name = "receive_messages")]
                [NoWrapper]
-               public virtual int datagram_receive_messages ([CCode (array_length_cname = "num_messages", 
array_length_pos = 1.5, array_length_type = "guint")] GLib.InputMessage[] messages, int flags, int64 timeout, 
GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public virtual int datagram_receive_messages ([CCode (array_length_cname = "num_messages", 
array_length_pos = 1.5)] GLib.InputMessage[:uint] messages, int flags, int64 timeout, GLib.Cancellable? 
cancellable = null) throws GLib.Error;
                [CCode (vfunc_name = "send_messages")]
                [NoWrapper]
-               public virtual int datagram_send_messages ([CCode (array_length_cname = "num_messages", 
array_length_pos = 1.5, array_length_type = "guint")] GLib.OutputMessage[] messages, int flags, int64 
timeout, GLib.Cancellable? cancellable = null) throws GLib.Error;
-               public int receive_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 
1.5, array_length_type = "guint")] GLib.InputMessage[] messages, int flags, int64 timeout, GLib.Cancellable? 
cancellable = null) throws GLib.Error;
-               public int send_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 
1.5, array_length_type = "guint")] GLib.OutputMessage[] messages, int flags, int64 timeout, GLib.Cancellable? 
cancellable = null) throws GLib.Error;
+               public virtual int datagram_send_messages ([CCode (array_length_cname = "num_messages", 
array_length_pos = 1.5)] GLib.OutputMessage[:uint] messages, int flags, int64 timeout, GLib.Cancellable? 
cancellable = null) throws GLib.Error;
+               public int receive_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 
1.5)] GLib.InputMessage[:uint] messages, int flags, int64 timeout, GLib.Cancellable? cancellable = null) 
throws GLib.Error;
+               public int send_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 
1.5)] GLib.OutputMessage[:uint] messages, int flags, int64 timeout, GLib.Cancellable? cancellable = null) 
throws GLib.Error;
        }
        [CCode (cheader_filename = "gio/gio.h", type_id = "g_drive_get_type ()")]
        public interface Drive : GLib.Object {
@@ -3706,8 +3706,8 @@ namespace GLib {
                public GLib.Bytes load_bytes (GLib.Cancellable? cancellable = null, out string? etag_out = 
null) throws GLib.Error;
                [Version (since = "2.56")]
                public async GLib.Bytes load_bytes_async (GLib.Cancellable? cancellable = null, out string? 
etag_out) throws GLib.Error;
-               public bool load_contents (GLib.Cancellable? cancellable, [CCode (array_length_cname = 
"length", array_length_pos = 2.5, array_length_type = "gsize")] out uint8[] contents, out string? etag_out) 
throws GLib.Error;
-               public async bool load_contents_async (GLib.Cancellable? cancellable = null, [CCode 
(array_length_cname = "length", array_length_pos = 2.5, array_length_type = "gsize")] out uint8[] contents, 
out string? etag_out) throws GLib.Error;
+               public bool load_contents (GLib.Cancellable? cancellable, [CCode (array_length_cname = 
"length", array_length_pos = 2.5)] out uint8[:size_t] contents, out string? etag_out) throws GLib.Error;
+               public async bool load_contents_async (GLib.Cancellable? cancellable = null, [CCode 
(array_length_cname = "length", array_length_pos = 2.5)] out uint8[:size_t] contents, out string? etag_out) 
throws GLib.Error;
                public async bool load_partial_contents_async (GLib.Cancellable? cancellable = null, [CCode 
(delegate_target_pos = -0.9)] GLib.FileReadMoreCallback read_more_callback, [CCode (array_length_cname = 
"length", array_length_pos = 2.5, array_length_type = "gsize")] out uint8[] contents, out string etag_out) 
throws GLib.Error;
                public abstract bool make_directory (GLib.Cancellable? cancellable = null) throws GLib.Error;
                [Version (since = "2.38")]
@@ -3762,8 +3762,8 @@ namespace GLib {
                public virtual async GLib.FileInputStream read_async (int io_priority = 
GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.Error;
                public abstract GLib.FileOutputStream replace (string? etag, bool make_backup, 
GLib.FileCreateFlags flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
                public virtual async GLib.FileOutputStream replace_async (string? etag, bool make_backup, 
GLib.FileCreateFlags flags, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) 
throws GLib.Error;
-               public bool replace_contents ([CCode (array_length_cname = "length", array_length_pos = 1.5, 
array_length_type = "gsize")] uint8[] contents, string? etag, bool make_backup, GLib.FileCreateFlags flags, 
out string? new_etag, GLib.Cancellable? cancellable = null) throws GLib.Error;
-               public async bool replace_contents_async ([CCode (array_length_cname = "length", 
array_length_pos = 1.5, array_length_type = "gsize")] uint8[] contents, string? etag, bool make_backup, 
GLib.FileCreateFlags flags, GLib.Cancellable? cancellable = null, out string? new_etag) throws GLib.Error;
+               public bool replace_contents ([CCode (array_length_cname = "length", array_length_pos = 1.5)] 
uint8[:size_t] contents, string? etag, bool make_backup, GLib.FileCreateFlags flags, out string? new_etag, 
GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public async bool replace_contents_async ([CCode (array_length_cname = "length", 
array_length_pos = 1.5)] uint8[:size_t] contents, string? etag, bool make_backup, GLib.FileCreateFlags flags, 
GLib.Cancellable? cancellable = null, out string? new_etag) throws GLib.Error;
                [CCode (finish_name = "g_file_replace_contents_finish")]
                [Version (since = "2.40")]
                public async bool replace_contents_bytes_async (GLib.Bytes contents, string? etag, bool 
make_backup, GLib.FileCreateFlags flags, GLib.Cancellable? cancellable = null, out string? new_etag) throws 
GLib.Error;
@@ -3821,7 +3821,7 @@ namespace GLib {
                public static GLib.Object @new (GLib.Type object_type, GLib.Cancellable? cancellable = null, 
...) throws GLib.Error;
                public static GLib.Object new_valist (GLib.Type object_type, string first_property_name, 
va_list var_args, GLib.Cancellable? cancellable = null) throws GLib.Error;
                [Version (deprecated = true, deprecated_since = "2.54", since = "2.22")]
-               public static GLib.Object newv (GLib.Type object_type, [CCode (array_length_cname = 
"n_parameters", array_length_pos = 1.5, array_length_type = "guint")] GLib.Parameter[] parameters, 
GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public static GLib.Object newv (GLib.Type object_type, [CCode (array_length_cname = 
"n_parameters", array_length_pos = 1.5)] GLib.Parameter[:uint] parameters, GLib.Cancellable? cancellable = 
null) throws GLib.Error;
        }
        [CCode (cheader_filename = "gio/gio.h", type_cname = "GListModelInterface", type_id = 
"g_list_model_get_type ()")]
        public interface ListModel : GLib.Object {
@@ -3916,10 +3916,10 @@ namespace GLib {
                public abstract bool can_poll ();
                public abstract GLib.PollableSource create_source (GLib.Cancellable? cancellable = null);
                public abstract bool is_readable ();
-               public ssize_t read_nonblocking ([CCode (array_length_cname = "count", array_length_pos = 
1.5, array_length_type = "gsize")] uint8[] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public ssize_t read_nonblocking ([CCode (array_length_cname = "count", array_length_pos = 
1.5)] uint8[:size_t] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
                [CCode (vfunc_name = "read_nonblocking")]
                [NoWrapper]
-               public abstract ssize_t read_nonblocking_fn ([CCode (array_length_cname = "count", 
array_length_pos = 1.1, array_length_type = "gsize")] uint8[] buffer) throws GLib.Error;
+               public abstract ssize_t read_nonblocking_fn ([CCode (array_length_cname = "count", 
array_length_pos = 1.1)] uint8[:size_t] buffer) throws GLib.Error;
        }
        [CCode (cheader_filename = "gio/gio.h", type_cname = "GPollableOutputStreamInterface", type_id = 
"g_pollable_output_stream_get_type ()")]
        [Version (since = "2.28")]
@@ -3927,16 +3927,16 @@ namespace GLib {
                public abstract bool can_poll ();
                public abstract GLib.PollableSource create_source (GLib.Cancellable? cancellable = null);
                public abstract bool is_writable ();
-               public ssize_t write_nonblocking ([CCode (array_length_cname = "count", array_length_pos = 
1.5, array_length_type = "gsize")] uint8[] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public ssize_t write_nonblocking ([CCode (array_length_cname = "count", array_length_pos = 
1.5)] uint8[:size_t] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
                [CCode (vfunc_name = "write_nonblocking")]
                [NoWrapper]
-               public abstract ssize_t write_nonblocking_fn ([CCode (array_length_cname = "count", 
array_length_pos = 1.1, array_length_type = "gsize")] uint8[]? buffer) throws GLib.Error;
+               public abstract ssize_t write_nonblocking_fn ([CCode (array_length_cname = "count", 
array_length_pos = 1.1)] uint8[:size_t]? buffer) throws GLib.Error;
                [Version (since = "2.60")]
-               public GLib.PollableReturn writev_nonblocking ([CCode (array_length_cname = "n_vectors", 
array_length_pos = 1.5, array_length_type = "gsize")] GLib.OutputVector[] vectors, out size_t bytes_written, 
GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public GLib.PollableReturn writev_nonblocking ([CCode (array_length_cname = "n_vectors", 
array_length_pos = 1.5)] GLib.OutputVector[:size_t] vectors, out size_t bytes_written, GLib.Cancellable? 
cancellable = null) throws GLib.Error;
                [CCode (vfunc_name = "writev_nonblocking")]
                [NoWrapper]
                [Version (since = "2.60")]
-               public abstract GLib.PollableReturn writev_nonblocking_fn ([CCode (array_length_cname = 
"n_vectors", array_length_pos = 1.5, array_length_type = "gsize")] GLib.OutputVector[] vectors, out size_t 
bytes_written) throws GLib.Error;
+               public abstract GLib.PollableReturn writev_nonblocking_fn ([CCode (array_length_cname = 
"n_vectors", array_length_pos = 1.5)] GLib.OutputVector[:size_t] vectors, out size_t bytes_written) throws 
GLib.Error;
        }
        [CCode (cheader_filename = "gio/gio.h", type_cname = "GProxyInterface", type_id = "g_proxy_get_type 
()")]
        [Version (since = "2.26")]
@@ -4114,8 +4114,8 @@ namespace GLib {
        [Version (since = "2.48")]
        public struct InputMessage {
                public weak GLib.SocketAddress address;
-               [CCode (array_length_cname = "num_vectors", array_length_type = "guint")]
-               public weak GLib.InputVector[] vectors;
+               [CCode (array_length_cname = "num_vectors")]
+               public weak GLib.InputVector[:uint] vectors;
                public uint num_vectors;
                public size_t bytes_received;
                public int flags;
@@ -4132,8 +4132,8 @@ namespace GLib {
        [Version (since = "2.44")]
        public struct OutputMessage {
                public weak GLib.SocketAddress address;
-               [CCode (array_length_cname = "num_vectors", array_length_type = "guint")]
-               public weak GLib.OutputVector[] vectors;
+               [CCode (array_length_cname = "num_vectors")]
+               public weak GLib.OutputVector[:uint] vectors;
                public uint num_vectors;
                public uint bytes_sent;
                public GLib.SocketControlMessage*** control_messages;
@@ -4853,7 +4853,7 @@ namespace GLib {
                [CCode (cheader_filename = "gio/gio.h")]
                public static bool register_error (GLib.Quark error_domain, int error_code, string 
dbus_error_name);
                [CCode (cheader_filename = "gio/gio.h")]
-               public static void register_error_domain (string error_domain_quark_name, size_t 
quark_volatile, [CCode (array_length_cname = "num_entries", array_length_pos = 3.1, array_length_type = 
"guint")] GLib.DBusErrorEntry[] entries);
+               public static void register_error_domain (string error_domain_quark_name, size_t 
quark_volatile, [CCode (array_length_cname = "num_entries", array_length_pos = 3.1)] 
GLib.DBusErrorEntry[:uint] entries);
                [CCode (cheader_filename = "gio/gio.h")]
                public static bool strip_remote_error (GLib.Error error);
                [CCode (cheader_filename = "gio/gio.h")]
@@ -5090,13 +5090,13 @@ namespace GLib {
        public static void networking_init ();
        [CCode (cheader_filename = "gio/gio.h")]
        [Version (since = "2.34")]
-       public static ssize_t pollable_stream_read (GLib.InputStream stream, [CCode (array_length_cname = 
"count", array_length_pos = 2.5, array_length_type = "gsize")] uint8[] buffer, bool blocking, 
GLib.Cancellable? cancellable = null) throws GLib.Error;
+       public static ssize_t pollable_stream_read (GLib.InputStream stream, [CCode (array_length_cname = 
"count", array_length_pos = 2.5)] uint8[:size_t] buffer, bool blocking, GLib.Cancellable? cancellable = null) 
throws GLib.Error;
        [CCode (cheader_filename = "gio/gio.h")]
        [Version (since = "2.34")]
-       public static ssize_t pollable_stream_write (GLib.OutputStream stream, [CCode (array_length_cname = 
"count", array_length_pos = 2.5, array_length_type = "gsize")] uint8[] buffer, bool blocking, 
GLib.Cancellable? cancellable = null) throws GLib.Error;
+       public static ssize_t pollable_stream_write (GLib.OutputStream stream, [CCode (array_length_cname = 
"count", array_length_pos = 2.5)] uint8[:size_t] buffer, bool blocking, GLib.Cancellable? cancellable = null) 
throws GLib.Error;
        [CCode (cheader_filename = "gio/gio.h")]
        [Version (since = "2.34")]
-       public static bool pollable_stream_write_all (GLib.OutputStream stream, [CCode (array_length_cname = 
"count", array_length_pos = 2.5, array_length_type = "gsize")] uint8[] buffer, bool blocking, out size_t 
bytes_written, GLib.Cancellable? cancellable = null) throws GLib.Error;
+       public static bool pollable_stream_write_all (GLib.OutputStream stream, [CCode (array_length_cname = 
"count", array_length_pos = 2.5)] uint8[:size_t] buffer, bool blocking, out size_t bytes_written, 
GLib.Cancellable? cancellable = null) throws GLib.Error;
        [CCode (array_length = false, array_null_terminated = true, cheader_filename = "gio/gio.h")]
        [Version (since = "2.32")]
        public static string[] resources_enumerate_children (string path, GLib.ResourceLookupFlags 
lookup_flags) throws GLib.Error;
diff --git a/vapi/gobject-introspection-1.0.vapi b/vapi/gobject-introspection-1.0.vapi
index f0b16d3de..734ce171f 100644
--- a/vapi/gobject-introspection-1.0.vapi
+++ b/vapi/gobject-introspection-1.0.vapi
@@ -193,7 +193,7 @@ namespace GI {
                public string[] get_loaded_namespaces ();
                public int get_n_infos (string namespace_);
                [Version (since = "1.62")]
-               public void get_object_gtype_interfaces (GLib.Type gtype, [CCode (array_length_cname = 
"n_interfaces_out", array_length_pos = 1.5, array_length_type = "guint")] out unowned GI.InterfaceInfo[] 
interfaces_out);
+               public void get_object_gtype_interfaces (GLib.Type gtype, [CCode (array_length_cname = 
"n_interfaces_out", array_length_pos = 1.5)] out unowned GI.InterfaceInfo[:uint] interfaces_out);
                public static GLib.OptionGroup get_option_group ();
                public static unowned GLib.SList<string> get_search_path ();
                public unowned string? get_shared_library (string namespace_);
diff --git a/vapi/goocanvas-2.0.vapi b/vapi/goocanvas-2.0.vapi
index 38aed7043..7c39a3806 100644
--- a/vapi/goocanvas-2.0.vapi
+++ b/vapi/goocanvas-2.0.vapi
@@ -786,8 +786,8 @@ namespace Goo {
                public void animate (double x, double y, double scale, double degrees, bool absolute, int 
duration, int step_time, Goo.CanvasAnimateType type);
                public static unowned GLib.ParamSpec class_find_child_property (GLib.ObjectClass iclass, 
string property_name);
                public static void class_install_child_property (GLib.ObjectClass iclass, uint property_id, 
GLib.ParamSpec pspec);
-               [CCode (array_length_pos = 1.1, array_length_type = "guint")]
-               public static (unowned GLib.ParamSpec)[] class_list_child_properties (GLib.ObjectClass 
iclass);
+               [CCode (array_length_pos = 1.1)]
+               public static (unowned GLib.ParamSpec)[:uint] class_list_child_properties (GLib.ObjectClass 
iclass);
                public void ensure_updated ();
                public int find_child (Goo.CanvasItem child);
                public abstract void get_bounds (out Goo.CanvasBounds bounds);
@@ -875,8 +875,8 @@ namespace Goo {
                public void animate (double x, double y, double scale, double degrees, bool absolute, int 
duration, int step_time, Goo.CanvasAnimateType type);
                public static unowned GLib.ParamSpec class_find_child_property (GLib.ObjectClass mclass, 
string property_name);
                public static void class_install_child_property (GLib.ObjectClass mclass, uint property_id, 
GLib.ParamSpec pspec);
-               [CCode (array_length_pos = 1.1, array_length_type = "guint")]
-               public static (unowned GLib.ParamSpec)[] class_list_child_properties (GLib.ObjectClass 
mclass);
+               [CCode (array_length_pos = 1.1)]
+               public static (unowned GLib.ParamSpec)[:uint] class_list_child_properties (GLib.ObjectClass 
mclass);
                [NoWrapper]
                public abstract unowned Goo.CanvasItem create_item (Goo.Canvas canvas);
                public int find_child (Goo.CanvasItemModel child);
diff --git a/vapi/graphene-gobject-1.0.vapi b/vapi/graphene-gobject-1.0.vapi
index 8ae0721d7..268f00bdf 100644
--- a/vapi/graphene-gobject-1.0.vapi
+++ b/vapi/graphene-gobject-1.0.vapi
@@ -24,9 +24,9 @@ namespace Graphene {
                public static unowned Graphene.Box? infinite ();
                public unowned Graphene.Box? init (Graphene.Point3D? min, Graphene.Point3D? max);
                public unowned Graphene.Box? init_from_box (Graphene.Box src);
-               public unowned Graphene.Box? init_from_points ([CCode (array_length_cname = "n_points", 
array_length_pos = 0.5, array_length_type = "guint")] Graphene.Point3D[] points);
+               public unowned Graphene.Box? init_from_points ([CCode (array_length_cname = "n_points", 
array_length_pos = 0.5)] Graphene.Point3D[:uint] points);
                public unowned Graphene.Box? init_from_vec3 (Graphene.Vec3? min, Graphene.Vec3? max);
-               public unowned Graphene.Box? init_from_vectors ([CCode (array_length_cname = "n_vectors", 
array_length_pos = 0.5, array_length_type = "guint")] Graphene.Vec3[] vectors);
+               public unowned Graphene.Box? init_from_vectors ([CCode (array_length_cname = "n_vectors", 
array_length_pos = 0.5)] Graphene.Vec3[:uint] vectors);
                public bool intersection (Graphene.Box b, out Graphene.Box res);
                public static unowned Graphene.Box? minus_one ();
                public static unowned Graphene.Box? one ();
@@ -411,8 +411,8 @@ namespace Graphene {
                public Graphene.Point3D get_center ();
                public float get_radius ();
                public unowned Graphene.Sphere? init (Graphene.Point3D? center, float radius);
-               public unowned Graphene.Sphere? init_from_points ([CCode (array_length_cname = "n_points", 
array_length_pos = 0.5, array_length_type = "guint")] Graphene.Point3D[] points, Graphene.Point3D? center);
-               public unowned Graphene.Sphere? init_from_vectors ([CCode (array_length_cname = "n_vectors", 
array_length_pos = 0.5, array_length_type = "guint")] Graphene.Vec3[] vectors, Graphene.Point3D? center);
+               public unowned Graphene.Sphere? init_from_points ([CCode (array_length_cname = "n_points", 
array_length_pos = 0.5)] Graphene.Point3D[:uint] points, Graphene.Point3D? center);
+               public unowned Graphene.Sphere? init_from_vectors ([CCode (array_length_cname = "n_vectors", 
array_length_pos = 0.5)] Graphene.Vec3[:uint] vectors, Graphene.Point3D? center);
                public bool is_empty ();
                public Graphene.Sphere translate (Graphene.Point3D point);
        }
diff --git a/vapi/gst-editing-services-1.0.vapi b/vapi/gst-editing-services-1.0.vapi
index df798325f..426a3be73 100644
--- a/vapi/gst-editing-services-1.0.vapi
+++ b/vapi/gst-editing-services-1.0.vapi
@@ -584,8 +584,8 @@ namespace GES {
                public GES.TimelineElement get_toplevel_parent ();
                [Version (since = "1.6.0")]
                public virtual GES.TrackType get_track_types ();
-               [CCode (array_length_pos = 0.1, array_length_type = "guint")]
-               public GLib.ParamSpec[] list_children_properties ();
+               [CCode (array_length_pos = 0.1)]
+               public GLib.ParamSpec[:uint] list_children_properties ();
                public virtual bool lookup_child (string prop_name, out GLib.Object child, out GLib.ParamSpec 
pspec);
                [Version (since = "1.6.0")]
                public GES.TimelineElement? paste (Gst.ClockTime paste_position);
@@ -775,9 +775,9 @@ namespace GES {
                public bool is_active ();
                [Version (since = "1.18")]
                public bool is_core ();
-               [CCode (array_length_pos = 0.1, array_length_type = "guint")]
+               [CCode (array_length_pos = 0.1)]
                [Version (deprecated = true)]
-               public GLib.ParamSpec[] list_children_properties ();
+               public GLib.ParamSpec[:uint] list_children_properties ();
                [Version (deprecated = true, deprecated_since = "1.14")]
                public virtual bool lookup_child (string prop_name, out Gst.Element element, out 
GLib.ParamSpec pspec);
                public bool remove_control_binding (string property_name);
diff --git a/vapi/gstreamer-1.0.vapi b/vapi/gstreamer-1.0.vapi
index 074b43f5b..688a5fa6a 100644
--- a/vapi/gstreamer-1.0.vapi
+++ b/vapi/gstreamer-1.0.vapi
@@ -413,7 +413,7 @@ namespace Gst {
                [Version (since = "1.14")]
                public static void dump_buffer (Gst.Buffer buf);
                [CCode (cheader_filename = "gst/gst.h")]
-               public static void dump_mem ([CCode (array_length_cname = "size", array_length_pos = 1.1, 
array_length_type = "guint")] uint8[] mem);
+               public static void dump_mem ([CCode (array_length_cname = "size", array_length_pos = 1.1)] 
uint8[:uint] mem);
                [CCode (cheader_filename = "gst/gst.h")]
                public static bool fraction_add (int a_n, int a_d, int b_n, int b_d, out int res_n, out int 
res_d);
                [CCode (cheader_filename = "gst/gst.h")]
@@ -703,10 +703,10 @@ namespace Gst {
                [CCode (instance_pos = 1.9)]
                public bool copy_into (Gst.Buffer dst, Gst.BufferCopyFlags flags, size_t offset, size_t size);
                public Gst.Buffer copy_region (Gst.BufferCopyFlags flags, size_t offset, size_t size);
-               public size_t extract (size_t offset, [CCode (array_length_cname = "size", array_length_pos = 
2.1, array_length_type = "gsize")] out unowned uint8[] dest);
+               public size_t extract (size_t offset, [CCode (array_length_cname = "size", array_length_pos = 
2.1)] out unowned uint8[:size_t] dest);
                [Version (since = "1.0.10")]
-               public void extract_dup (size_t offset, size_t size, [CCode (array_length_cname = 
"dest_size", array_length_pos = 3.1, array_length_type = "gsize")] out uint8[] dest);
-               public size_t fill (size_t offset, [CCode (array_length_cname = "size", array_length_pos = 
2.1, array_length_type = "gsize")] uint8[] src);
+               public void extract_dup (size_t offset, size_t size, [CCode (array_length_cname = 
"dest_size", array_length_pos = 3.1)] out uint8[:size_t] dest);
+               public size_t fill (size_t offset, [CCode (array_length_cname = "size", array_length_pos = 
2.1)] uint8[:size_t] src);
                public bool find_memory (size_t offset, size_t size, out uint idx, out uint length, out 
size_t skip);
                public bool foreach_meta (Gst.BufferForeachMetaFunc func);
                public Gst.Memory? get_all_memory ();
@@ -735,10 +735,10 @@ namespace Gst {
                public bool is_memory_range_writable (uint idx, int length);
                public bool map (out Gst.MapInfo info, Gst.MapFlags flags);
                public bool map_range (uint idx, int length, out Gst.MapInfo info, Gst.MapFlags flags);
-               public int memcmp (size_t offset, [CCode (array_length_cname = "size", array_length_pos = 
2.1, array_length_type = "gsize")] uint8[] mem);
+               public int memcmp (size_t offset, [CCode (array_length_cname = "size", array_length_pos = 
2.1)] uint8[:size_t] mem);
                [CCode (has_construct_function = false)]
                [Version (since = "1.20")]
-               public Buffer.memdup ([CCode (array_length_cname = "size", array_length_pos = 1.1, 
array_length_type = "gsize")] uint8[] data);
+               public Buffer.memdup ([CCode (array_length_cname = "size", array_length_pos = 1.1)] 
uint8[:size_t] data);
                public size_t memset (size_t offset, uint8 val, size_t size);
                public uint n_memory ();
                [CCode (has_construct_function = false, simple_generics = true)]
@@ -761,7 +761,7 @@ namespace Gst {
                [Version (since = "1.10")]
                public bool unset_flags (Gst.BufferFlags flags);
                [CCode (has_construct_function = false)]
-               public Buffer.wrapped ([CCode (array_length_cname = "size", array_length_pos = 1.1, 
array_length_type = "gsize")] owned uint8[] data);
+               public Buffer.wrapped ([CCode (array_length_cname = "size", array_length_pos = 1.1)] owned 
uint8[:size_t] data);
                [CCode (has_construct_function = false)]
                [Version (since = "1.16")]
                public Buffer.wrapped_bytes (GLib.Bytes bytes);
@@ -1051,7 +1051,7 @@ namespace Gst {
                public weak GLib.ParamSpec pspec;
                [CCode (has_construct_function = false)]
                protected ControlBinding ();
-               public virtual bool get_g_value_array (Gst.ClockTime timestamp, Gst.ClockTime interval, 
[CCode (array_length_cname = "n_values", array_length_pos = 2.5, array_length_type = "guint")] GLib.Value[] 
values);
+               public virtual bool get_g_value_array (Gst.ClockTime timestamp, Gst.ClockTime interval, 
[CCode (array_length_cname = "n_values", array_length_pos = 2.5)] GLib.Value[:uint] values);
                public virtual GLib.Value? get_value (Gst.ClockTime timestamp);
                public virtual bool get_value_array<T> (Gst.ClockTime timestamp, Gst.ClockTime interval, 
[CCode (array_length_pos = 2.5, array_length_type = "guint")] T[] values);
                public bool is_disabled ();
@@ -1071,7 +1071,7 @@ namespace Gst {
                [CCode (has_construct_function = false)]
                protected ControlSource ();
                public bool get_value (Gst.ClockTime timestamp, out double value);
-               public bool get_value_array (Gst.ClockTime timestamp, Gst.ClockTime interval, [CCode 
(array_length_cname = "n_values", array_length_pos = 2.5, array_length_type = "guint")] double[] values);
+               public bool get_value_array (Gst.ClockTime timestamp, Gst.ClockTime interval, [CCode 
(array_length_cname = "n_values", array_length_pos = 2.5)] double[:uint] values);
        }
        [CCode (cheader_filename = "gst/gst.h", ref_function = "gst_date_time_ref", type_id = 
"gst_date_time_get_type ()", unref_function = "gst_date_time_unref")]
        [Compact]
@@ -1848,7 +1848,7 @@ namespace Gst {
                public void default_error (GLib.Error error, string? debug);
                public Gst.ControlBinding? get_control_binding (string property_name);
                public Gst.ClockTime get_control_rate ();
-               public bool get_g_value_array (string property_name, Gst.ClockTime timestamp, Gst.ClockTime 
interval, [CCode (array_length_cname = "n_values", array_length_pos = 3.5, array_length_type = "guint")] 
GLib.Value[] values);
+               public bool get_g_value_array (string property_name, Gst.ClockTime timestamp, Gst.ClockTime 
interval, [CCode (array_length_cname = "n_values", array_length_pos = 3.5)] GLib.Value[:uint] values);
                public string? get_name ();
                public Gst.Object? get_parent ();
                public string get_path_string ();
@@ -2942,8 +2942,8 @@ namespace Gst {
        public struct MapInfo {
                public weak Gst.Memory memory;
                public Gst.MapFlags flags;
-               [CCode (array_length_cname = "size", array_length_type = "gsize")]
-               public weak uint8[] data;
+               [CCode (array_length_cname = "size")]
+               public weak uint8[:size_t] data;
                public size_t size;
                public size_t maxsize;
                [CCode (array_length = false)]
@@ -3075,8 +3075,8 @@ namespace Gst {
                public weak Gst.TypeFindGetLengthVFunc get_length_v;
                public uint64 get_length ();
                public static GLib.Type get_type ();
-               [CCode (array_length_pos = 1.1, array_length_type = "guint")]
-               public unowned uint8[]? peek (int64 offset);
+               [CCode (array_length_pos = 1.1)]
+               public unowned uint8[:uint]? peek (int64 offset);
                public static bool register (Gst.Plugin? plugin, string name, uint rank, [CCode 
(delegate_target_pos = 6.1, destroy_notify_pos = 6.2)] owned Gst.TypeFindFunction func, string? extensions, 
Gst.Caps? possible_caps);
                public void suggest (uint probability, Gst.Caps caps);
                [Version (since = "1.20")]
@@ -3994,7 +3994,7 @@ namespace Gst {
        [CCode (cheader_filename = "gst/gst.h", has_target = false)]
        public delegate bool ControlSourceGetValue (Gst.ControlSource self, Gst.ClockTime timestamp, out 
double value);
        [CCode (cheader_filename = "gst/gst.h", has_target = false)]
-       public delegate bool ControlSourceGetValueArray (Gst.ControlSource self, Gst.ClockTime timestamp, 
Gst.ClockTime interval, [CCode (array_length_cname = "n_values", array_length_pos = 3.5, array_length_type = 
"guint", type = "gdouble*")] double[] values);
+       public delegate bool ControlSourceGetValueArray (Gst.ControlSource self, Gst.ClockTime timestamp, 
Gst.ClockTime interval, [CCode (array_length_cname = "n_values", array_length_pos = 3.5, type = "gdouble*")] 
double[:uint] values);
        [CCode (cheader_filename = "gst/gst.h", instance_pos = 5.9)]
        [Version (since = "1.20")]
        public delegate bool CustomMetaTransformFunction (Gst.Buffer transbuf, Gst.CustomMeta meta, 
Gst.Buffer buffer, GLib.Quark type, void* data);
diff --git a/vapi/gstreamer-audio-1.0.vapi b/vapi/gstreamer-audio-1.0.vapi
index a98c6211f..915f459ce 100644
--- a/vapi/gstreamer-audio-1.0.vapi
+++ b/vapi/gstreamer-audio-1.0.vapi
@@ -157,7 +157,7 @@ namespace Gst {
                        [CCode (has_construct_function = false)]
                        public Converter (Gst.Audio.ConverterFlags flags, Gst.Audio.Info in_info, 
Gst.Audio.Info out_info, owned Gst.Structure? config);
                        [Version (since = "1.14")]
-                       public bool convert (Gst.Audio.ConverterFlags flags, [CCode (array_length_cname = 
"in_size", array_length_pos = 2.5, array_length_type = "gsize")] uint8[] @in, [CCode (array_length_cname = 
"out_size", array_length_pos = 3.1, array_length_type = "gsize")] out uint8[] @out);
+                       public bool convert (Gst.Audio.ConverterFlags flags, [CCode (array_length_cname = 
"in_size", array_length_pos = 2.5)] uint8[:size_t] @in, [CCode (array_length_cname = "out_size", 
array_length_pos = 3.1)] out uint8[:size_t] @out);
                        public void free ();
                        public unowned Gst.Structure get_config (out int in_rate, out int out_rate);
                        public size_t get_in_frames (size_t out_frames);
@@ -431,7 +431,7 @@ namespace Gst {
                        public static bool parse_caps (Gst.Audio.RingBufferSpec spec, Gst.Caps caps);
                        public virtual bool pause ();
                        public bool prepare_read (out int segment, [CCode (array_length_cname = "len", 
array_length_pos = 2.1)] out uint8[] readptr);
-                       public uint read (uint64 sample, [CCode (array_length_cname = "len", array_length_pos 
= 2.5, array_length_type = "guint")] uint8[] data, out Gst.ClockTime timestamp);
+                       public uint read (uint64 sample, [CCode (array_length_cname = "len", array_length_pos 
= 2.5)] uint8[:uint] data, out Gst.ClockTime timestamp);
                        public virtual bool release ();
                        [NoWrapper]
                        public virtual bool resume ();
@@ -473,7 +473,7 @@ namespace Gst {
                        [NoWrapper]
                        public virtual bool unprepare ();
                        [NoWrapper]
-                       public virtual int write ([CCode (array_length_cname = "length", array_length_pos = 
1.1, array_length_type = "guint", type = "gpointer")] uint8[] data);
+                       public virtual int write ([CCode (array_length_cname = "length", array_length_pos = 
1.1, type = "gpointer")] uint8[:uint] data);
                }
                [CCode (cheader_filename = "gst/audio/audio.h", type_id = "gst_audio_src_get_type ()")]
                [GIR (name = "AudioSrc")]
@@ -489,7 +489,7 @@ namespace Gst {
                        [NoWrapper]
                        public virtual bool prepare (Gst.Audio.RingBufferSpec spec);
                        [NoWrapper]
-                       public virtual uint read ([CCode (array_length_cname = "length", array_length_pos = 
1.5, array_length_type = "guint", type = "gpointer")] uint8[] data, Gst.ClockTime timestamp);
+                       public virtual uint read ([CCode (array_length_cname = "length", array_length_pos = 
1.5, type = "gpointer")] uint8[:uint] data, Gst.ClockTime timestamp);
                        [NoWrapper]
                        public virtual void reset ();
                        [NoWrapper]
@@ -583,7 +583,7 @@ namespace Gst {
                        public weak Gst.Audio.FormatUnpack unpack_func;
                        public weak Gst.Audio.FormatPack pack_func;
                        [Version (since = "1.20")]
-                       public void fill_silence ([CCode (array_length_cname = "length", array_length_pos = 
1.1, array_length_type = "gsize")] uint8[] dest);
+                       public void fill_silence ([CCode (array_length_cname = "length", array_length_pos = 
1.1)] uint8[:size_t] dest);
                }
                [CCode (cheader_filename = "gst/audio/audio.h", has_type_id = false)]
                [GIR (name = "AudioLevelMeta")]
@@ -889,7 +889,7 @@ namespace Gst {
                [CCode (cheader_filename = "gst/audio/audio.h", has_target = false)]
                public delegate void FormatUnpack (Gst.Audio.FormatInfo info, Gst.Audio.PackFlags flags, 
[CCode (array_length = false)] uint8[] dest, [CCode (array_length = false)] uint8[] data, int length);
                [CCode (cheader_filename = "gst/audio/audio.h", instance_pos = 2.9)]
-               public delegate void RingBufferCallback (Gst.Audio.RingBuffer rbuf, [CCode 
(array_length_cname = "len", array_length_pos = 2.1, array_length_type = "guint")] uint8[] data);
+               public delegate void RingBufferCallback (Gst.Audio.RingBuffer rbuf, [CCode 
(array_length_cname = "len", array_length_pos = 2.1)] uint8[:uint] data);
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "GST_AUDIO_CHANNELS_RANGE")]
                public const string CHANNELS_RANGE;
                [CCode (cheader_filename = "gst/audio/audio.h", cname = 
"GST_AUDIO_CONVERTER_OPT_DITHER_METHOD")]
@@ -995,7 +995,7 @@ namespace Gst {
                public static Gst.Audio.Format audio_format_build_integer (bool sign, int endianness, int 
width, int depth);
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_format_fill_silence")]
                [Version (deprecated = true, deprecated_since = "1.20")]
-               public static void audio_format_fill_silence (Gst.Audio.FormatInfo info, [CCode 
(array_length_cname = "length", array_length_pos = 2.1, array_length_type = "gsize")] uint8[] dest);
+               public static void audio_format_fill_silence (Gst.Audio.FormatInfo info, [CCode 
(array_length_cname = "length", array_length_pos = 2.1)] uint8[:size_t] dest);
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_format_from_string")]
                public static Gst.Audio.Format audio_format_from_string (string format);
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_format_get_info")]
@@ -1004,15 +1004,15 @@ namespace Gst {
                public static GLib.Type audio_format_info_get_type ();
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_format_to_string")]
                public static unowned string audio_format_to_string (Gst.Audio.Format format);
-               [CCode (array_length_pos = 0.1, array_length_type = "guint", cheader_filename = 
"gst/audio/audio.h", cname = "gst_audio_formats_raw")]
+               [CCode (array_length_pos = 0.1, cheader_filename = "gst/audio/audio.h", cname = 
"gst_audio_formats_raw")]
                [Version (since = "1.18")]
-               public static unowned Gst.Audio.Format[] audio_formats_raw ();
+               public static unowned Gst.Audio.Format[:uint] audio_formats_raw ();
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_get_channel_reorder_map")]
                public static bool audio_get_channel_reorder_map ([CCode (array_length_cname = "channels", 
array_length_pos = 0.5)] Gst.Audio.ChannelPosition[] from, [CCode (array_length_cname = "channels", 
array_length_pos = 0.5)] Gst.Audio.ChannelPosition[] to, [CCode (array_length_cname = "channels", 
array_length_pos = 0.5)] int[] reorder_map);
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_iec61937_frame_size")]
                public static uint audio_iec61937_frame_size (Gst.Audio.RingBufferSpec spec);
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_iec61937_payload")]
-               public static bool audio_iec61937_payload ([CCode (array_length_cname = "src_n", 
array_length_pos = 1.5, array_length_type = "guint")] uint8[] src, [CCode (array_length_cname = "dst_n", 
array_length_pos = 2.5, array_length_type = "guint")] uint8[] dst, Gst.Audio.RingBufferSpec spec, int 
endianness);
+               public static bool audio_iec61937_payload ([CCode (array_length_cname = "src_n", 
array_length_pos = 1.5)] uint8[:uint] src, [CCode (array_length_cname = "dst_n", array_length_pos = 2.5)] 
uint8[:uint] dst, Gst.Audio.RingBufferSpec spec, int endianness);
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_info_from_caps")]
                public static bool audio_info_from_caps (out unowned Gst.Audio.Info info, Gst.Caps caps);
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_info_init")]
@@ -1025,13 +1025,13 @@ namespace Gst {
                public static unowned Gst.MetaInfo? audio_level_meta_get_info ();
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_make_raw_caps")]
                [Version (since = "1.18")]
-               public static Gst.Caps audio_make_raw_caps ([CCode (array_length_cname = "len", 
array_length_pos = 1.5, array_length_type = "guint")] Gst.Audio.Format[]? formats, Gst.Audio.Layout layout);
+               public static Gst.Caps audio_make_raw_caps ([CCode (array_length_cname = "len", 
array_length_pos = 1.5)] Gst.Audio.Format[:uint]? formats, Gst.Audio.Layout layout);
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_meta_api_get_type")]
                public static GLib.Type audio_meta_api_get_type ();
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_meta_get_info")]
                public static unowned Gst.MetaInfo? audio_meta_get_info ();
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_audio_reorder_channels")]
-               public static bool audio_reorder_channels ([CCode (array_length_cname = "size", 
array_length_pos = 1.5, array_length_type = "gsize")] uint8[] data, Gst.Audio.Format format, [CCode 
(array_length_cname = "channels", array_length_pos = 2.5)] Gst.Audio.ChannelPosition[] from, [CCode 
(array_length_cname = "channels", array_length_pos = 2.5)] Gst.Audio.ChannelPosition[] to);
+               public static bool audio_reorder_channels ([CCode (array_length_cname = "size", 
array_length_pos = 1.5)] uint8[:size_t] data, Gst.Audio.Format format, [CCode (array_length_cname = 
"channels", array_length_pos = 2.5)] Gst.Audio.ChannelPosition[] from, [CCode (array_length_cname = 
"channels", array_length_pos = 2.5)] Gst.Audio.ChannelPosition[] to);
                [CCode (cheader_filename = "gst/audio/audio.h", cname = 
"gst_audio_resampler_options_set_quality")]
                public static void audio_resampler_options_set_quality (Gst.Audio.ResamplerMethod method, 
uint quality, int in_rate, int out_rate, Gst.Structure options);
                [CCode (cheader_filename = "gst/audio/audio.h", cname = "gst_buffer_add_audio_clipping_meta")]
diff --git a/vapi/gstreamer-base-1.0.vapi b/vapi/gstreamer-base-1.0.vapi
index e7ab05888..7c31d429e 100644
--- a/vapi/gstreamer-base-1.0.vapi
+++ b/vapi/gstreamer-base-1.0.vapi
@@ -11,7 +11,7 @@ namespace Gst {
                        public size_t available ();
                        public size_t available_fast ();
                        public void clear ();
-                       public void copy ([CCode (array_length_cname = "size", array_length_pos = 2.1, 
array_length_type = "gsize")] out unowned uint8[] dest, size_t offset);
+                       public void copy ([CCode (array_length_cname = "size", array_length_pos = 2.1)] out 
unowned uint8[:size_t] dest, size_t offset);
                        [Version (since = "1.4")]
                        public GLib.Bytes copy_bytes (size_t offset, size_t size);
                        [Version (since = "1.10")]
@@ -158,8 +158,8 @@ namespace Gst {
                public class BitReader {
                        public uint bit;
                        public uint byte;
-                       [CCode (array_length_cname = "size", array_length_type = "guint")]
-                       public weak uint8[] data;
+                       [CCode (array_length_cname = "size")]
+                       public weak uint8[:uint] data;
                        public uint size;
                        public BitReader ([CCode (array_length_type = "guint")] uint8[] data);
                        [CCode (cname = "gst_bit_reader_free")]
@@ -180,7 +180,7 @@ namespace Gst {
                        [CCode (cname = "gst_bit_reader_get_size")]
                        public uint get_size ();
                        [CCode (cname = "gst_bit_reader_init")]
-                       public void init ([CCode (array_length_cname = "size", array_length_pos = 1.1, 
array_length_type = "guint")] uint8[] data);
+                       public void init ([CCode (array_length_cname = "size", array_length_pos = 1.1)] 
uint8[:uint] data);
                        [CCode (cname = "gst_bit_reader_peek_bits_uint16")]
                        public bool peek_bits_uint16 (out uint16 val, uint nbits);
                        [CCode (cname = "gst_bit_reader_peek_bits_uint32")]
@@ -201,12 +201,12 @@ namespace Gst {
                [GIR (name = "ByteReader")]
                public class ByteReader {
                        public uint byte;
-                       [CCode (array_length_cname = "size", array_length_type = "guint")]
-                       public weak uint8[] data;
+                       [CCode (array_length_cname = "size")]
+                       public weak uint8[:uint] data;
                        public uint size;
                        public ByteReader ([CCode (array_length_type = "guint")] uint8[] data);
                        [CCode (cname = "gst_byte_reader_dup_data")]
-                       public bool dup_data ([CCode (array_length_cname = "size", array_length_pos = 0.5, 
array_length_type = "guint")] out uint8[] val);
+                       public bool dup_data ([CCode (array_length_cname = "size", array_length_pos = 0.5)] 
out uint8[:uint] val);
                        [CCode (cname = "gst_byte_reader_dup_string_utf16")]
                        public bool dup_string_utf16 ([CCode (array_length = false, array_null_terminated = 
true)] out uint16[] str);
                        [CCode (cname = "gst_byte_reader_dup_string_utf32")]
@@ -217,7 +217,7 @@ namespace Gst {
                        [DestroysInstance]
                        public void free ();
                        [CCode (cname = "gst_byte_reader_get_data")]
-                       public bool get_data ([CCode (array_length_cname = "size", array_length_pos = 0.5, 
array_length_type = "guint")] out unowned uint8[] val);
+                       public bool get_data ([CCode (array_length_cname = "size", array_length_pos = 0.5)] 
out unowned uint8[:uint] val);
                        [CCode (cname = "gst_byte_reader_get_float32_be")]
                        public bool get_float32_be (out float val);
                        [CCode (cname = "gst_byte_reader_get_float32_le")]
@@ -271,14 +271,14 @@ namespace Gst {
                        [CCode (cname = "gst_byte_reader_get_uint8")]
                        public bool get_uint8 (out uint8 val);
                        [CCode (cname = "gst_byte_reader_init")]
-                       public void init ([CCode (array_length_cname = "size", array_length_pos = 1.1, 
array_length_type = "guint")] uint8[] data);
+                       public void init ([CCode (array_length_cname = "size", array_length_pos = 1.1)] 
uint8[:uint] data);
                        [CCode (cname = "gst_byte_reader_masked_scan_uint32")]
                        public uint masked_scan_uint32 (uint32 mask, uint32 pattern, uint offset, uint size);
                        [CCode (cname = "gst_byte_reader_masked_scan_uint32_peek")]
                        [Version (since = "1.6")]
                        public uint masked_scan_uint32_peek (uint32 mask, uint32 pattern, uint offset, uint 
size, out uint32 value);
                        [CCode (cname = "gst_byte_reader_peek_data")]
-                       public bool peek_data ([CCode (array_length_cname = "size", array_length_pos = 0.5, 
array_length_type = "guint")] out unowned uint8[] val);
+                       public bool peek_data ([CCode (array_length_cname = "size", array_length_pos = 0.5)] 
out unowned uint8[:uint] val);
                        [CCode (cname = "gst_byte_reader_peek_float32_be")]
                        public bool peek_float32_be (out float val);
                        [CCode (cname = "gst_byte_reader_peek_float32_le")]
@@ -363,13 +363,13 @@ namespace Gst {
                        [CCode (cname = "gst_byte_writer_init")]
                        public void init ();
                        [CCode (cname = "gst_byte_writer_init_with_data")]
-                       public void init_with_data ([CCode (array_length_cname = "size", array_length_pos = 
1.5, array_length_type = "guint")] uint8[] data, bool initialized);
+                       public void init_with_data ([CCode (array_length_cname = "size", array_length_pos = 
1.5)] uint8[:uint] data, bool initialized);
                        [CCode (cname = "gst_byte_writer_init_with_size")]
                        public void init_with_size (uint size, bool fixed);
                        [CCode (cname = "gst_byte_writer_put_buffer")]
                        public bool put_buffer (Gst.Buffer buffer, size_t offset, ssize_t size);
                        [CCode (cname = "gst_byte_writer_put_data")]
-                       public bool put_data ([CCode (array_length_cname = "size", array_length_pos = 1.1, 
array_length_type = "guint")] uint8[] data);
+                       public bool put_data ([CCode (array_length_cname = "size", array_length_pos = 1.1)] 
uint8[:uint] data);
                        [CCode (cname = "gst_byte_writer_put_float32_be")]
                        public bool put_float32_be (float val);
                        [CCode (cname = "gst_byte_writer_put_float32_le")]
@@ -984,10 +984,10 @@ namespace Gst {
                [Version (since = "1.16")]
                public static Gst.Caps? type_find_helper_for_buffer_with_extension (Gst.Object? obj, 
Gst.Buffer buf, string? extension, out Gst.TypeFindProbability prob);
                [CCode (cheader_filename = "gst/base/base.h", cname = "gst_type_find_helper_for_data")]
-               public static Gst.Caps? type_find_helper_for_data (Gst.Object? obj, [CCode 
(array_length_cname = "size", array_length_pos = 2.5, array_length_type = "gsize")] uint8[] data, out 
Gst.TypeFindProbability prob);
+               public static Gst.Caps? type_find_helper_for_data (Gst.Object? obj, [CCode 
(array_length_cname = "size", array_length_pos = 2.5)] uint8[:size_t] data, out Gst.TypeFindProbability prob);
                [CCode (cheader_filename = "gst/base/base.h", cname = 
"gst_type_find_helper_for_data_with_extension")]
                [Version (since = "1.16")]
-               public static Gst.Caps? type_find_helper_for_data_with_extension (Gst.Object? obj, [CCode 
(array_length_cname = "size", array_length_pos = 2.5, array_length_type = "gsize")] uint8[] data, string? 
extension, out Gst.TypeFindProbability prob);
+               public static Gst.Caps? type_find_helper_for_data_with_extension (Gst.Object? obj, [CCode 
(array_length_cname = "size", array_length_pos = 2.5)] uint8[:size_t] data, string? extension, out 
Gst.TypeFindProbability prob);
                [CCode (cheader_filename = "gst/base/base.h", cname = "gst_type_find_helper_for_extension")]
                public static Gst.Caps? type_find_helper_for_extension (Gst.Object? obj, string extension);
                [CCode (cheader_filename = "gst/base/base.h", cname = "gst_type_find_helper_get_range")]
diff --git a/vapi/gstreamer-pbutils-1.0.vapi b/vapi/gstreamer-pbutils-1.0.vapi
index 802cf4a1e..aba7d63a5 100644
--- a/vapi/gstreamer-pbutils-1.0.vapi
+++ b/vapi/gstreamer-pbutils-1.0.vapi
@@ -6,39 +6,39 @@ namespace Gst {
                namespace Codec {
                        namespace AAC {
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_aac_caps_set_level_and_profile")]
-                               public static bool caps_set_level_and_profile (Gst.Caps caps, [CCode 
(array_length_cname = "len", array_length_pos = 2.1, array_length_type = "guint")] uint8[] audio_config);
+                               public static bool caps_set_level_and_profile (Gst.Caps caps, [CCode 
(array_length_cname = "len", array_length_pos = 2.1)] uint8[:uint] audio_config);
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_aac_get_channels")]
                                [Version (since = "1.10")]
-                               public static uint get_channels ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] audio_config);
+                               public static uint get_channels ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] audio_config);
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_aac_get_index_from_sample_rate")]
                                public static int get_index_from_sample_rate (uint rate);
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_aac_get_level")]
-                               public static unowned string get_level ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] audio_config);
+                               public static unowned string get_level ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] audio_config);
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_aac_get_profile")]
-                               public static unowned string get_profile ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] audio_config);
+                               public static unowned string get_profile ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] audio_config);
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_aac_get_sample_rate")]
                                [Version (since = "1.10")]
-                               public static uint get_sample_rate ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] audio_config);
+                               public static uint get_sample_rate ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] audio_config);
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_aac_get_sample_rate_from_index")]
                                public static uint get_sample_rate_from_index (uint sr_idx);
                        }
                        namespace H264 {
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_h264_caps_set_level_and_profile")]
-                               public static bool caps_set_level_and_profile (Gst.Caps caps, [CCode 
(array_length_cname = "len", array_length_pos = 2.1, array_length_type = "guint")] uint8[] sps);
+                               public static bool caps_set_level_and_profile (Gst.Caps caps, [CCode 
(array_length_cname = "len", array_length_pos = 2.1)] uint8[:uint] sps);
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_h264_get_level")]
-                               public static unowned string get_level ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] sps);
+                               public static unowned string get_level ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] sps);
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_h264_get_level_idc")]
                                public static uint8 get_level_idc (string level);
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_h264_get_profile")]
-                               public static unowned string get_profile ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] sps);
+                               public static unowned string get_profile ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] sps);
                        }
                        namespace MPEG4Video {
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_mpeg4video_caps_set_level_and_profile")]
-                               public static bool caps_set_level_and_profile (Gst.Caps caps, [CCode 
(array_length_cname = "len", array_length_pos = 2.1, array_length_type = "guint")] uint8[] vis_obj_seq);
+                               public static bool caps_set_level_and_profile (Gst.Caps caps, [CCode 
(array_length_cname = "len", array_length_pos = 2.1)] uint8[:uint] vis_obj_seq);
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_mpeg4video_get_level")]
-                               public static unowned string get_level ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] vis_obj_seq);
+                               public static unowned string get_level ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] vis_obj_seq);
                                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_mpeg4video_get_profile")]
-                               public static unowned string get_profile ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] vis_obj_seq);
+                               public static unowned string get_profile ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] vis_obj_seq);
                        }
                }
                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = "GstAudioVisualizer", 
lower_case_cprefix = "gst_audio_visualizer_", type_id = "gst_audio_visualizer_get_type ()")]
@@ -351,19 +351,19 @@ namespace Gst {
                public static bool add_codec_description_to_tag_list (Gst.TagList taglist, string? codec_tag, 
Gst.Caps caps);
                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_h265_caps_set_level_tier_and_profile")]
                [Version (since = "1.4")]
-               public static bool codec_utils_h265_caps_set_level_tier_and_profile (Gst.Caps caps, [CCode 
(array_length_cname = "len", array_length_pos = 2.1, array_length_type = "guint")] uint8[] 
profile_tier_level);
+               public static bool codec_utils_h265_caps_set_level_tier_and_profile (Gst.Caps caps, [CCode 
(array_length_cname = "len", array_length_pos = 2.1)] uint8[:uint] profile_tier_level);
                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = "gst_codec_utils_h265_get_level")]
                [Version (since = "1.4")]
-               public static unowned string codec_utils_h265_get_level ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] profile_tier_level);
+               public static unowned string codec_utils_h265_get_level ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] profile_tier_level);
                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_h265_get_level_idc")]
                [Version (since = "1.4")]
                public static uint8 codec_utils_h265_get_level_idc (string level);
                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_h265_get_profile")]
                [Version (since = "1.4")]
-               public static unowned string codec_utils_h265_get_profile ([CCode (array_length_cname = 
"len", array_length_pos = 1.1, array_length_type = "guint")] uint8[] profile_tier_level);
+               public static unowned string codec_utils_h265_get_profile ([CCode (array_length_cname = 
"len", array_length_pos = 1.1)] uint8[:uint] profile_tier_level);
                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = "gst_codec_utils_h265_get_tier")]
                [Version (since = "1.4")]
-               public static unowned string codec_utils_h265_get_tier ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] profile_tier_level);
+               public static unowned string codec_utils_h265_get_tier ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] profile_tier_level);
                [CCode (cheader_filename = "gst/pbutils/pbutils.h", cname = 
"gst_codec_utils_opus_create_caps")]
                [Version (since = "1.8")]
                public static Gst.Caps codec_utils_opus_create_caps (uint32 rate, uint8 channels, uint8 
channel_mapping_family, uint8 stream_count, uint8 coupled_count, [CCode (array_length = false)] uint8[]? 
channel_mapping);
diff --git a/vapi/gstreamer-rtp-1.0.vapi b/vapi/gstreamer-rtp-1.0.vapi
index 846dbb67c..050016106 100644
--- a/vapi/gstreamer-rtp-1.0.vapi
+++ b/vapi/gstreamer-rtp-1.0.vapi
@@ -12,13 +12,13 @@ namespace Gst {
                        public uint get_packet_count ();
                        public static bool map (Gst.Buffer buffer, Gst.MapFlags flags, out Gst.RTCP.Buffer 
rtcp);
                        public static Gst.Buffer @new (uint mtu);
-                       public static Gst.Buffer new_copy_data ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] data);
-                       public static Gst.Buffer new_take_data ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] owned uint8[] data);
+                       public static Gst.Buffer new_copy_data ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] data);
+                       public static Gst.Buffer new_take_data ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] owned uint8[:uint] data);
                        public bool unmap ();
                        public static bool validate (Gst.Buffer buffer);
-                       public static bool validate_data ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] data);
+                       public static bool validate_data ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] data);
                        [Version (since = "1.6")]
-                       public static bool validate_data_reduced ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] data);
+                       public static bool validate_data_reduced ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] data);
                        [Version (since = "1.6")]
                        public static bool validate_reduced (Gst.Buffer buffer);
                }
@@ -28,7 +28,7 @@ namespace Gst {
                        public weak Gst.RTCP.Buffer? rtcp;
                        public uint offset;
                        [Version (since = "1.10")]
-                       public bool add_profile_specific_ext ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] data);
+                       public bool add_profile_specific_ext ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:uint] data);
                        public bool add_rb (uint32 ssrc, uint8 fractionlost, int32 packetslost, uint32 
exthighestseq, uint32 jitter, uint32 lsr, uint32 dlsr);
                        [Version (since = "1.10")]
                        public uint8 app_get_data ();
@@ -49,14 +49,14 @@ namespace Gst {
                        [Version (since = "1.10")]
                        public void app_set_subtype (uint8 subtype);
                        public bool bye_add_ssrc (uint32 ssrc);
-                       public bool bye_add_ssrcs ([CCode (array_length_cname = "len", array_length_pos = 
1.1, array_length_type = "guint")] uint32[] ssrc);
+                       public bool bye_add_ssrcs ([CCode (array_length_cname = "len", array_length_pos = 
1.1)] uint32[:uint] ssrc);
                        public uint32 bye_get_nth_ssrc (uint nth);
                        public string bye_get_reason ();
                        public uint8 bye_get_reason_len ();
                        public uint bye_get_ssrc_count ();
                        public bool bye_set_reason (string reason);
                        [Version (since = "1.10")]
-                       public bool copy_profile_specific_ext ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] out uint8[] data);
+                       public bool copy_profile_specific_ext ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] out uint8[:uint] data);
                        public uint8 fb_get_fci ();
                        public uint16 fb_get_fci_length ();
                        public uint32 fb_get_media_ssrc ();
@@ -70,7 +70,7 @@ namespace Gst {
                        public uint16 get_length ();
                        public bool get_padding ();
                        [Version (since = "1.10")]
-                       public bool get_profile_specific_ext ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "guint")] out unowned uint8[] data);
+                       public bool get_profile_specific_ext ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] out unowned uint8[:uint] data);
                        [Version (since = "1.10")]
                        public uint16 get_profile_specific_ext_length ();
                        public void get_rb (uint nth, out uint32 ssrc, out uint8 fractionlost, out int32 
packetslost, out uint32 exthighestseq, out uint32 jitter, out uint32 lsr, out uint32 dlsr);
@@ -80,12 +80,12 @@ namespace Gst {
                        public bool remove ();
                        public uint32 rr_get_ssrc ();
                        public void rr_set_ssrc (uint32 ssrc);
-                       public bool sdes_add_entry (Gst.RTCP.SDESType type, [CCode (array_length_cname = 
"len", array_length_pos = 1.5, array_length_type = "guint8")] uint8[] data);
+                       public bool sdes_add_entry (Gst.RTCP.SDESType type, [CCode (array_length_cname = 
"len", array_length_pos = 1.5)] uint8[:uint8] data);
                        public bool sdes_add_item (uint32 ssrc);
-                       public bool sdes_copy_entry (out Gst.RTCP.SDESType type, [CCode (array_length_cname = 
"len", array_length_pos = 1.5, array_length_type = "guint8")] out uint8[] data);
+                       public bool sdes_copy_entry (out Gst.RTCP.SDESType type, [CCode (array_length_cname = 
"len", array_length_pos = 1.5)] out uint8[:uint8] data);
                        public bool sdes_first_entry ();
                        public bool sdes_first_item ();
-                       public bool sdes_get_entry (out Gst.RTCP.SDESType type, [CCode (array_length_cname = 
"len", array_length_pos = 1.5, array_length_type = "guint8")] out unowned uint8[] data);
+                       public bool sdes_get_entry (out Gst.RTCP.SDESType type, [CCode (array_length_cname = 
"len", array_length_pos = 1.5)] out unowned uint8[:uint8] data);
                        public uint sdes_get_item_count ();
                        public uint32 sdes_get_ssrc ();
                        public bool sdes_next_entry ();
@@ -235,7 +235,7 @@ namespace Gst {
                        protected BaseAudioPayload ();
                        public Gst.FlowReturn flush (uint payload_len, Gst.ClockTime timestamp);
                        public Gst.Base.Adapter get_adapter ();
-                       public Gst.FlowReturn push ([CCode (array_length_cname = "payload_len", 
array_length_pos = 1.5, array_length_type = "guint")] uint8[] data, Gst.ClockTime timestamp);
+                       public Gst.FlowReturn push ([CCode (array_length_cname = "payload_len", 
array_length_pos = 1.5)] uint8[:uint] data, Gst.ClockTime timestamp);
                        public void set_frame_based ();
                        public void set_frame_options (int frame_duration, int frame_size);
                        public void set_sample_based ();
@@ -374,7 +374,7 @@ namespace Gst {
                        public string get_sdp_caps_field_name ();
                        public virtual Gst.RTP.HeaderExtensionFlags get_supported_flags ();
                        public unowned string get_uri ();
-                       public virtual bool read (Gst.RTP.HeaderExtensionFlags read_flags, [CCode 
(array_length_cname = "size", array_length_pos = 2.5, array_length_type = "gsize")] uint8[] data, Gst.Buffer 
buffer);
+                       public virtual bool read (Gst.RTP.HeaderExtensionFlags read_flags, [CCode 
(array_length_cname = "size", array_length_pos = 2.5)] uint8[:size_t] data, Gst.Buffer buffer);
                        public virtual bool set_attributes_from_caps (Gst.Caps caps);
                        public bool set_attributes_from_caps_simple_sdp (Gst.Caps caps);
                        public virtual bool set_caps_from_attributes (Gst.Caps caps);
@@ -386,7 +386,7 @@ namespace Gst {
                        public void set_wants_update_non_rtp_src_caps (bool state);
                        public virtual bool update_non_rtp_src_caps (Gst.Caps caps);
                        public bool wants_update_non_rtp_src_caps ();
-                       public virtual size_t write (Gst.Buffer input_meta, Gst.RTP.HeaderExtensionFlags 
write_flags, Gst.Buffer output, [CCode (array_length_cname = "size", array_length_pos = 4.1, 
array_length_type = "gsize")] uint8[] data);
+                       public virtual size_t write (Gst.Buffer input_meta, Gst.RTP.HeaderExtensionFlags 
write_flags, Gst.Buffer output, [CCode (array_length_cname = "size", array_length_pos = 4.1)] uint8[:size_t] 
data);
                }
                [CCode (cheader_filename = "gst/rtp/rtp.h", has_type_id = false)]
                [GIR (name = "RTPBuffer")]
@@ -397,8 +397,8 @@ namespace Gst {
                        public weak void* data[4];
                        [CCode (array_length = false)]
                        public weak size_t size[4];
-                       public bool add_extension_onebyte_header (uint8 id, [CCode (array_length_cname = 
"size", array_length_pos = 2.1, array_length_type = "guint")] uint8[] data);
-                       public bool add_extension_twobytes_header (uint8 appbits, uint8 id, [CCode 
(array_length_cname = "size", array_length_pos = 3.1, array_length_type = "guint")] uint8[] data);
+                       public bool add_extension_onebyte_header (uint8 id, [CCode (array_length_cname = 
"size", array_length_pos = 2.1)] uint8[:uint] data);
+                       public bool add_extension_twobytes_header (uint8 appbits, uint8 id, [CCode 
(array_length_cname = "size", array_length_pos = 3.1)] uint8[:uint] data);
                        [CCode (cname = "gst_buffer_add_rtp_source_meta")]
                        [Version (since = "1.16")]
                        public static unowned Gst.RTP.SourceMeta? add_rtp_source_meta (Gst.Buffer buffer, 
uint32? ssrc, uint32? csrc, uint csrc_count);
@@ -415,10 +415,10 @@ namespace Gst {
                        [Version (since = "1.2")]
                        public GLib.Bytes get_extension_bytes (out uint16 bits);
                        public bool get_extension_data (out uint16 bits, [CCode (array_length = false)] out 
unowned uint8[] data, out uint wordlen);
-                       public bool get_extension_onebyte_header (uint8 id, uint nth, [CCode 
(array_length_cname = "size", array_length_pos = 3.1, array_length_type = "guint")] out unowned uint8[] data);
+                       public bool get_extension_onebyte_header (uint8 id, uint nth, [CCode 
(array_length_cname = "size", array_length_pos = 3.1)] out unowned uint8[:uint] data);
                        [Version (since = "1.18")]
-                       public static bool get_extension_onebyte_header_from_bytes (GLib.Bytes bytes, uint16 
bit_pattern, uint8 id, uint nth, [CCode (array_length_cname = "size", array_length_pos = 5.1, 
array_length_type = "guint")] out unowned uint8[] data);
-                       public bool get_extension_twobytes_header (out uint8 appbits, uint8 id, uint nth, 
[CCode (array_length_cname = "size", array_length_pos = 4.1, array_length_type = "guint")] out unowned 
uint8[] data);
+                       public static bool get_extension_onebyte_header_from_bytes (GLib.Bytes bytes, uint16 
bit_pattern, uint8 id, uint nth, [CCode (array_length_cname = "size", array_length_pos = 5.1)] out unowned 
uint8[:uint] data);
+                       public bool get_extension_twobytes_header (out uint8 appbits, uint8 id, uint nth, 
[CCode (array_length_cname = "size", array_length_pos = 4.1)] out unowned uint8[:uint] data);
                        public uint get_header_len ();
                        public bool get_marker ();
                        public uint get_packet_len ();
@@ -441,8 +441,8 @@ namespace Gst {
                        public static bool map (Gst.Buffer buffer, Gst.MapFlags flags, out Gst.RTP.Buffer 
rtp);
                        public static Gst.Buffer new_allocate (uint payload_len, uint8 pad_len, uint8 
csrc_count);
                        public static Gst.Buffer new_allocate_len (uint packet_len, uint8 pad_len, uint8 
csrc_count);
-                       public static Gst.Buffer new_copy_data ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "gsize")] uint8[] data);
-                       public static Gst.Buffer new_take_data ([CCode (array_length_cname = "len", 
array_length_pos = 1.1, array_length_type = "gsize")] owned uint8[] data);
+                       public static Gst.Buffer new_copy_data ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] uint8[:size_t] data);
+                       public static Gst.Buffer new_take_data ([CCode (array_length_cname = "len", 
array_length_pos = 1.1)] owned uint8[:size_t] data);
                        public void pad_to (uint len);
                        [Version (since = "1.20")]
                        public void remove_extension_data ();
@@ -479,7 +479,7 @@ namespace Gst {
                        [CCode (array_length = false)]
                        public weak uint32 csrc[15];
                        public uint csrc_count;
-                       public bool append_csrc ([CCode (array_length_cname = "csrc_count", array_length_pos 
= 1.1, array_length_type = "guint", type = "const guint32*")] uint32[] csrc);
+                       public bool append_csrc ([CCode (array_length_cname = "csrc_count", array_length_pos 
= 1.1, type = "const guint32*")] uint32[:uint] csrc);
                        public uint get_source_count ();
                        public bool set_ssrc (uint32? ssrc);
                }
@@ -607,9 +607,9 @@ namespace Gst {
                [Version (since = "1.20")]
                public static GLib.List<Gst.ElementFactory> get_header_extension_list ();
                [CCode (cheader_filename = "gst/rtp/rtp.h")]
-               public static bool hdrext_get_ntp_56 ([CCode (array_length_cname = "size", array_length_pos = 
1.5, array_length_type = "guint")] uint8[] data, out uint64 ntptime);
+               public static bool hdrext_get_ntp_56 ([CCode (array_length_cname = "size", array_length_pos = 
1.5)] uint8[:uint] data, out uint64 ntptime);
                [CCode (cheader_filename = "gst/rtp/rtp.h")]
-               public static bool hdrext_get_ntp_64 ([CCode (array_length_cname = "size", array_length_pos = 
1.5, array_length_type = "guint")] uint8[] data, out uint64 ntptime);
+               public static bool hdrext_get_ntp_64 ([CCode (array_length_cname = "size", array_length_pos = 
1.5)] uint8[:uint] data, out uint64 ntptime);
                [CCode (cheader_filename = "gst/rtp/rtp.h")]
                public static bool hdrext_set_ntp_56 (void* data, uint size, uint64 ntptime);
                [CCode (cheader_filename = "gst/rtp/rtp.h")]
diff --git a/vapi/gstreamer-rtsp-1.0.vapi b/vapi/gstreamer-rtsp-1.0.vapi
index fafa3293b..a393f93ee 100644
--- a/vapi/gstreamer-rtsp-1.0.vapi
+++ b/vapi/gstreamer-rtsp-1.0.vapi
@@ -74,9 +74,9 @@ namespace Gst {
                        [Version (deprecated = true, deprecated_since = "1.18")]
                        public Gst.RTSP.Result send (Gst.RTSP.Message message, GLib.TimeVal timeout);
                        [Version (deprecated = true, deprecated_since = "1.18", since = "1.16")]
-                       public Gst.RTSP.Result send_messages ([CCode (array_length_cname = "n_messages", 
array_length_pos = 1.5, array_length_type = "guint")] Gst.RTSP.Message[] messages, GLib.TimeVal timeout);
+                       public Gst.RTSP.Result send_messages ([CCode (array_length_cname = "n_messages", 
array_length_pos = 1.5)] Gst.RTSP.Message[:uint] messages, GLib.TimeVal timeout);
                        [Version (since = "1.18")]
-                       public Gst.RTSP.Result send_messages_usec ([CCode (array_length_cname = "n_messages", 
array_length_pos = 1.5, array_length_type = "guint")] Gst.RTSP.Message[] messages, int64 timeout);
+                       public Gst.RTSP.Result send_messages_usec ([CCode (array_length_cname = "n_messages", 
array_length_pos = 1.5)] Gst.RTSP.Message[:uint] messages, int64 timeout);
                        [Version (since = "1.18")]
                        public Gst.RTSP.Result send_usec (Gst.RTSP.Message message, int64 timeout);
                        [Version (since = "1.14")]
@@ -136,7 +136,7 @@ namespace Gst {
                        [CCode (cname = "gst_rtsp_message_free")]
                        public Gst.RTSP.Result free ();
                        [CCode (cname = "gst_rtsp_message_get_body")]
-                       public Gst.RTSP.Result get_body ([CCode (array_length_cname = "size", 
array_length_pos = 1.1, array_length_type = "guint")] out unowned uint8[] data);
+                       public Gst.RTSP.Result get_body ([CCode (array_length_cname = "size", 
array_length_pos = 1.1)] out unowned uint8[:uint] data);
                        [CCode (cname = "gst_rtsp_message_get_body_buffer")]
                        [Version (since = "1.16")]
                        public Gst.RTSP.Result get_body_buffer (out unowned Gst.Buffer buffer);
@@ -173,17 +173,17 @@ namespace Gst {
                        [Version (since = "1.6")]
                        public Gst.RTSP.Result remove_header_by_name (string header, int index);
                        [CCode (cname = "gst_rtsp_message_set_body")]
-                       public Gst.RTSP.Result set_body ([CCode (array_length_cname = "size", 
array_length_pos = 1.1, array_length_type = "guint")] uint8[] data);
+                       public Gst.RTSP.Result set_body ([CCode (array_length_cname = "size", 
array_length_pos = 1.1)] uint8[:uint] data);
                        [CCode (cname = "gst_rtsp_message_set_body_buffer")]
                        [Version (since = "1.16")]
                        public Gst.RTSP.Result set_body_buffer (Gst.Buffer buffer);
                        [CCode (cname = "gst_rtsp_message_steal_body")]
-                       public Gst.RTSP.Result steal_body ([CCode (array_length_cname = "size", 
array_length_pos = 1.1, array_length_type = "guint")] out uint8[] data);
+                       public Gst.RTSP.Result steal_body ([CCode (array_length_cname = "size", 
array_length_pos = 1.1)] out uint8[:uint] data);
                        [CCode (cname = "gst_rtsp_message_steal_body_buffer")]
                        [Version (since = "1.16")]
                        public Gst.RTSP.Result steal_body_buffer (out Gst.Buffer buffer);
                        [CCode (cname = "gst_rtsp_message_take_body")]
-                       public Gst.RTSP.Result take_body ([CCode (array_length_cname = "size", 
array_length_pos = 1.1, array_length_type = "guint")] owned uint8[] data);
+                       public Gst.RTSP.Result take_body ([CCode (array_length_cname = "size", 
array_length_pos = 1.1)] owned uint8[:uint] data);
                        [CCode (cname = "gst_rtsp_message_take_body_buffer")]
                        [Version (since = "1.16")]
                        public Gst.RTSP.Result take_body_buffer (owned Gst.Buffer buffer);
@@ -227,7 +227,7 @@ namespace Gst {
                        public void reset ();
                        public Gst.RTSP.Result send_message (Gst.RTSP.Message message, out uint id);
                        [Version (since = "1.16")]
-                       public Gst.RTSP.Result send_messages ([CCode (array_length_cname = "n_messages", 
array_length_pos = 1.5, array_length_type = "guint")] Gst.RTSP.Message[] messages, out uint id);
+                       public Gst.RTSP.Result send_messages ([CCode (array_length_cname = "n_messages", 
array_length_pos = 1.5)] Gst.RTSP.Message[:uint] messages, out uint id);
                        [Version (since = "1.4")]
                        public void set_flushing (bool flushing);
                        [Version (since = "1.2")]
@@ -237,7 +237,7 @@ namespace Gst {
                        public Gst.RTSP.Result wait_backlog (GLib.TimeVal timeout);
                        [Version (since = "1.18")]
                        public Gst.RTSP.Result wait_backlog_usec (int64 timeout);
-                       public Gst.RTSP.Result write_data ([CCode (array_length_cname = "size", 
array_length_pos = 1.5, array_length_type = "guint")] owned uint8[] data, out uint id);
+                       public Gst.RTSP.Result write_data ([CCode (array_length_cname = "size", 
array_length_pos = 1.5)] owned uint8[:uint] data, out uint id);
                }
                [CCode (cheader_filename = "gst/rtsp/rtsp.h", type_cname = "GstRTSPExtensionInterface", 
type_id = "gst_rtsp_extension_get_type ()")]
                [GIR (name = "RTSPExtension")]
diff --git a/vapi/gstreamer-rtsp-server-1.0.vapi b/vapi/gstreamer-rtsp-server-1.0.vapi
index d1128133e..4af6267bf 100644
--- a/vapi/gstreamer-rtsp-server-1.0.vapi
+++ b/vapi/gstreamer-rtsp-server-1.0.vapi
@@ -925,7 +925,7 @@ namespace Gst {
                public delegate bool ClientSendFunc (Gst.RTSPServer.Client client, Gst.RTSP.Message message, 
bool close);
                [CCode (cheader_filename = "gst/rtsp-server/rtsp-server.h", cname = 
"GstRTSPClientSendMessagesFunc", instance_pos = 3.9)]
                [Version (since = "1.16")]
-               public delegate bool ClientSendMessagesFunc (Gst.RTSPServer.Client client, [CCode 
(array_length_cname = "n_messages", array_length_pos = 2.5, array_length_type = "guint", type = 
"GstRTSPMessage*")] Gst.RTSP.Message[] messages, bool close);
+               public delegate bool ClientSendMessagesFunc (Gst.RTSPServer.Client client, [CCode 
(array_length_cname = "n_messages", array_length_pos = 2.5, type = "GstRTSPMessage*")] 
Gst.RTSP.Message[:uint] messages, bool close);
                [CCode (cheader_filename = "gst/rtsp-server/rtsp-server.h", cname = 
"GstRTSPClientSessionFilterFunc", instance_pos = 2.9)]
                public delegate Gst.RTSPServer.FilterResult ClientSessionFilterFunc (Gst.RTSPServer.Client 
client, Gst.RTSPServer.Session sess);
                [CCode (cheader_filename = "gst/rtsp-server/rtsp-server.h", cname = "GstRTSPKeepAliveFunc", 
instance_pos = 0.9)]
diff --git a/vapi/gstreamer-sdp-1.0.vapi b/vapi/gstreamer-sdp-1.0.vapi
index 87bcc3631..2a18639f9 100644
--- a/vapi/gstreamer-sdp-1.0.vapi
+++ b/vapi/gstreamer-sdp-1.0.vapi
@@ -33,9 +33,9 @@ namespace Gst {
                        [Version (since = "1.4")]
                        public bool add_payload (owned Gst.SDP.MIKEYPayload payload);
                        [Version (since = "1.4")]
-                       public bool add_pke (Gst.SDP.MIKEYCacheType C, [CCode (array_length_cname = 
"data_len", array_length_pos = 1.5, array_length_type = "guint16")] uint8[] data);
+                       public bool add_pke (Gst.SDP.MIKEYCacheType C, [CCode (array_length_cname = 
"data_len", array_length_pos = 1.5)] uint8[:uint16] data);
                        [Version (since = "1.4")]
-                       public bool add_rand ([CCode (array_length_cname = "len", array_length_pos = 0.5, 
array_length_type = "guint8")] uint8[] rand);
+                       public bool add_rand ([CCode (array_length_cname = "len", array_length_pos = 0.5)] 
uint8[:uint8] rand);
                        [Version (since = "1.4")]
                        public bool add_rand_len (uint8 len);
                        [Version (since = "1.4")]
@@ -54,7 +54,7 @@ namespace Gst {
                        public MIKEYMessage.from_caps (Gst.Caps caps);
                        [CCode (has_construct_function = false)]
                        [Version (since = "1.4")]
-                       public MIKEYMessage.from_data ([CCode (array_length_cname = "size", array_length_pos 
= 1.5, array_length_type = "gsize")] uint8[] data, Gst.SDP.MIKEYDecryptInfo info) throws GLib.Error;
+                       public MIKEYMessage.from_data ([CCode (array_length_cname = "size", array_length_pos 
= 1.5)] uint8[:size_t] data, Gst.SDP.MIKEYDecryptInfo info) throws GLib.Error;
                        [Version (since = "1.4")]
                        public unowned Gst.SDP.MIKEYMapSRTP? get_cs_srtp (uint idx);
                        [Version (since = "1.4")]
@@ -102,19 +102,19 @@ namespace Gst {
                        [Version (since = "1.4")]
                        public bool kemac_set (Gst.SDP.MIKEYEncAlg enc_alg, Gst.SDP.MIKEYMacAlg mac_alg);
                        [Version (since = "1.4")]
-                       public bool key_data_set_interval (uint8 vf_len, [CCode (array_length_cname = 
"vt_len", array_length_pos = 1.66667, array_length_type = "guint8")] uint8[] vt_data);
+                       public bool key_data_set_interval (uint8 vf_len, [CCode (array_length_cname = 
"vt_len", array_length_pos = 1.66667)] uint8[:uint8] vt_data);
                        [Version (since = "1.4")]
-                       public bool key_data_set_key (Gst.SDP.MIKEYKeyDataType key_type, [CCode 
(array_length_cname = "key_len", array_length_pos = 1.5, array_length_type = "guint16")] uint8[] key_data);
+                       public bool key_data_set_key (Gst.SDP.MIKEYKeyDataType key_type, [CCode 
(array_length_cname = "key_len", array_length_pos = 1.5)] uint8[:uint16] key_data);
                        [Version (since = "1.4")]
-                       public bool key_data_set_salt ([CCode (array_length_cname = "salt_len", 
array_length_pos = 0.5, array_length_type = "guint16")] uint8[]? salt_data);
+                       public bool key_data_set_salt ([CCode (array_length_cname = "salt_len", 
array_length_pos = 0.5)] uint8[:uint16]? salt_data);
                        [Version (since = "1.4")]
-                       public bool key_data_set_spi ([CCode (array_length_cname = "spi_len", 
array_length_pos = 0.5, array_length_type = "guint8")] uint8[] spi_data);
+                       public bool key_data_set_spi ([CCode (array_length_cname = "spi_len", 
array_length_pos = 0.5)] uint8[:uint8] spi_data);
                        [Version (since = "1.4")]
-                       public bool pke_set (Gst.SDP.MIKEYCacheType C, [CCode (array_length_cname = 
"data_len", array_length_pos = 1.5, array_length_type = "guint16")] uint8[] data);
+                       public bool pke_set (Gst.SDP.MIKEYCacheType C, [CCode (array_length_cname = 
"data_len", array_length_pos = 1.5)] uint8[:uint16] data);
                        [Version (since = "1.4")]
-                       public bool rand_set ([CCode (array_length_cname = "len", array_length_pos = 0.5, 
array_length_type = "guint8")] uint8[] rand);
+                       public bool rand_set ([CCode (array_length_cname = "len", array_length_pos = 0.5)] 
uint8[:uint8] rand);
                        [Version (since = "1.4")]
-                       public bool sp_add_param (uint8 type, [CCode (array_length_cname = "len", 
array_length_pos = 1.5, array_length_type = "guint8")] uint8[] val);
+                       public bool sp_add_param (uint8 type, [CCode (array_length_cname = "len", 
array_length_pos = 1.5)] uint8[:uint8] val);
                        [Version (since = "1.4")]
                        public uint sp_get_n_params ();
                        [Version (since = "1.4")]
@@ -587,7 +587,7 @@ namespace Gst {
                [Version (since = "1.16")]
                public static Gst.SDP.Result message_new_from_text (string text, out Gst.SDP.Message msg);
                [CCode (cheader_filename = "gst/sdp/sdp.h")]
-               public static Gst.SDP.Result message_parse_buffer ([CCode (array_length_cname = "size", 
array_length_pos = 1.5, array_length_type = "guint")] uint8[] data, Gst.SDP.Message msg);
+               public static Gst.SDP.Result message_parse_buffer ([CCode (array_length_cname = "size", 
array_length_pos = 1.5)] uint8[:uint] data, Gst.SDP.Message msg);
                [CCode (cheader_filename = "gst/sdp/sdp.h")]
                public static Gst.SDP.Result message_parse_uri (string uri, Gst.SDP.Message msg);
        }
diff --git a/vapi/gstreamer-tag-1.0.vapi b/vapi/gstreamer-tag-1.0.vapi
index 1ef26138b..116c8b558 100644
--- a/vapi/gstreamer-tag-1.0.vapi
+++ b/vapi/gstreamer-tag-1.0.vapi
@@ -70,7 +70,7 @@ namespace Gst {
                }
                namespace List {
                        [CCode (cheader_filename = "gst/tag/tag.h")]
-                       public static bool add_id3_image (Gst.TagList tag_list, [CCode (array_length_cname = 
"image_data_len", array_length_pos = 2.5, array_length_type = "guint")] uint8[] image_data, uint 
id3_picture_type);
+                       public static bool add_id3_image (Gst.TagList tag_list, [CCode (array_length_cname = 
"image_data_len", array_length_pos = 2.5)] uint8[:uint] image_data, uint id3_picture_type);
                        [CCode (cheader_filename = "gst/tag/tag.h")]
                        public static Gst.TagList from_exif_buffer (Gst.Buffer buffer, int byte_order, uint32 
base_offset);
                        [CCode (cheader_filename = "gst/tag/tag.h")]
@@ -78,9 +78,9 @@ namespace Gst {
                        [CCode (cheader_filename = "gst/tag/tag.h")]
                        public static Gst.TagList from_id3v2_tag (Gst.Buffer buffer);
                        [CCode (cheader_filename = "gst/tag/tag.h")]
-                       public static Gst.TagList from_vorbiscomment ([CCode (array_length_cname = "size", 
array_length_pos = 1.5, array_length_type = "gsize")] uint8[] data, [CCode (array_length_cname = 
"id_data_length", array_length_pos = 2.5, array_length_type = "guint")] uint8[] id_data, out string 
vendor_string);
+                       public static Gst.TagList from_vorbiscomment ([CCode (array_length_cname = "size", 
array_length_pos = 1.5)] uint8[:size_t] data, [CCode (array_length_cname = "id_data_length", array_length_pos 
= 2.5)] uint8[:uint] id_data, out string vendor_string);
                        [CCode (cheader_filename = "gst/tag/tag.h")]
-                       public static Gst.TagList from_vorbiscomment_buffer (Gst.Buffer buffer, [CCode 
(array_length_cname = "id_data_length", array_length_pos = 2.5, array_length_type = "guint")] uint8[] 
id_data, out string vendor_string);
+                       public static Gst.TagList from_vorbiscomment_buffer (Gst.Buffer buffer, [CCode 
(array_length_cname = "id_data_length", array_length_pos = 2.5)] uint8[:uint] id_data, out string 
vendor_string);
                        [CCode (cheader_filename = "gst/tag/tag.h")]
                        public static Gst.TagList from_xmp_buffer (Gst.Buffer buffer);
                        [CCode (cheader_filename = "gst/tag/tag.h")]
@@ -90,7 +90,7 @@ namespace Gst {
                        [CCode (cheader_filename = "gst/tag/tag.h")]
                        public static Gst.Buffer to_exif_buffer_with_tiff_header (Gst.TagList taglist);
                        [CCode (cheader_filename = "gst/tag/tag.h")]
-                       public static Gst.Buffer to_vorbiscomment_buffer (Gst.TagList list, [CCode 
(array_length_cname = "id_data_length", array_length_pos = 2.5, array_length_type = "guint")] uint8[] 
id_data, string? vendor_string);
+                       public static Gst.Buffer to_vorbiscomment_buffer (Gst.TagList list, [CCode 
(array_length_cname = "id_data_length", array_length_pos = 2.5)] uint8[:uint] id_data, string? vendor_string);
                        [CCode (cheader_filename = "gst/tag/tag.h")]
                        public static Gst.Buffer to_xmp_buffer (Gst.TagList list, bool read_only, [CCode 
(array_length = false, array_null_terminated = true)] string[] schemas);
                }
@@ -246,7 +246,7 @@ namespace Gst {
                [CCode (cheader_filename = "gst/tag/tag.h")]
                public static unowned string id3_genre_get (uint id);
                [CCode (cheader_filename = "gst/tag/tag.h")]
-               public static Gst.Sample image_data_to_image_sample ([CCode (array_length_cname = 
"image_data_len", array_length_pos = 1.5, array_length_type = "guint")] uint8[] image_data, Gst.Tag.ImageType 
image_type);
+               public static Gst.Sample image_data_to_image_sample ([CCode (array_length_cname = 
"image_data_len", array_length_pos = 1.5)] uint8[:uint] image_data, Gst.Tag.ImageType image_type);
                [CCode (cheader_filename = "gst/tag/tag.h")]
                public static bool parse_extended_comment (string ext_comment, out string? key, out string? 
lang, out string value, bool fail_if_no_key);
                [CCode (cheader_filename = "gst/tag/tag.h")]
diff --git a/vapi/gstreamer-video-1.0.vapi b/vapi/gstreamer-video-1.0.vapi
index db41717ea..6ca836416 100644
--- a/vapi/gstreamer-video-1.0.vapi
+++ b/vapi/gstreamer-video-1.0.vapi
@@ -536,7 +536,7 @@ namespace Gst {
                public class VBIEncoder {
                        [CCode (has_construct_function = false)]
                        public VBIEncoder (Gst.Video.Format format, uint32 pixel_width);
-                       public bool add_ancillary (bool composite, uint8 DID, uint8 SDID_block_number, [CCode 
(array_length_cname = "data_count", array_length_pos = 4.1, array_length_type = "guint")] uint8[] data);
+                       public bool add_ancillary (bool composite, uint8 DID, uint8 SDID_block_number, [CCode 
(array_length_cname = "data_count", array_length_pos = 4.1)] uint8[:uint] data);
                        public Gst.Video.VBIEncoder copy ();
                        public void free ();
                        public void write_line (uint8 data);
@@ -670,8 +670,8 @@ namespace Gst {
                        public uint8 DID;
                        public uint8 SDID_block_number;
                        public uint8 data_count;
-                       [CCode (array_length_cname = "data_count", array_length_type = "guint8")]
-                       public weak uint8[] data;
+                       [CCode (array_length_cname = "data_count")]
+                       public weak uint8[:uint8] data;
                }
                [CCode (cheader_filename = "gst/video/video.h", has_type_id = false)]
                [GIR (name = "VideoBarMeta")]
@@ -689,8 +689,8 @@ namespace Gst {
                public struct CaptionMeta {
                        public Gst.Meta meta;
                        public Gst.Video.CaptionType caption_type;
-                       [CCode (array_length_cname = "size", array_length_type = "gsize")]
-                       public weak uint8[] data;
+                       [CCode (array_length_cname = "size")]
+                       public weak uint8[:size_t] data;
                        public size_t size;
                }
                [CCode (cheader_filename = "gst/video/video.h", has_type_id = false)]
@@ -1742,7 +1742,7 @@ namespace Gst {
                public static unowned Gst.Video.BarMeta? buffer_add_video_bar_meta (Gst.Buffer buffer, uint8 
field, bool is_letterbox, uint bar_data1, uint bar_data2);
                [CCode (cheader_filename = "gst/video/video.h", cname = "gst_buffer_add_video_caption_meta")]
                [Version (since = "1.16")]
-               public static unowned Gst.Video.CaptionMeta? buffer_add_video_caption_meta (Gst.Buffer 
buffer, Gst.Video.CaptionType caption_type, [CCode (array_length_cname = "size", array_length_pos = 3.1, 
array_length_type = "gsize")] uint8[] data);
+               public static unowned Gst.Video.CaptionMeta? buffer_add_video_caption_meta (Gst.Buffer 
buffer, Gst.Video.CaptionType caption_type, [CCode (array_length_cname = "size", array_length_pos = 3.1)] 
uint8[:size_t] data);
                [CCode (cheader_filename = "gst/video/video.h", cname = 
"gst_buffer_add_video_codec_alpha_meta")]
                [Version (since = "1.20")]
                public static unowned Gst.Video.CodecAlphaMeta? buffer_add_video_codec_alpha_meta (Gst.Buffer 
buffer, owned Gst.Buffer alpha_buffer);
@@ -1876,9 +1876,9 @@ namespace Gst {
                public static uint32 format_to_fourcc (Gst.Video.Format format);
                [CCode (cheader_filename = "gst/video/video.h")]
                public static unowned string format_to_string (Gst.Video.Format format);
-               [CCode (array_length_pos = 0.1, array_length_type = "guint", cheader_filename = 
"gst/video/video.h")]
+               [CCode (array_length_pos = 0.1, cheader_filename = "gst/video/video.h")]
                [Version (since = "1.18")]
-               public static unowned Gst.Video.Format[] formats_raw ();
+               public static unowned Gst.Video.Format[:uint] formats_raw ();
                [CCode (cheader_filename = "gst/video/video.h")]
                public static bool frame_map (out Gst.Video.Frame frame, Gst.Video.Info info, Gst.Buffer 
buffer, Gst.MapFlags flags);
                [CCode (cheader_filename = "gst/video/video.h")]
@@ -1904,10 +1904,10 @@ namespace Gst {
                public static bool is_video_overlay_prepare_window_handle_message (Gst.Message msg);
                [CCode (cheader_filename = "gst/video/video.h")]
                [Version (since = "1.18")]
-               public static Gst.Caps make_raw_caps ([CCode (array_length_cname = "len", array_length_pos = 
1.1, array_length_type = "guint")] Gst.Video.Format[]? formats);
+               public static Gst.Caps make_raw_caps ([CCode (array_length_cname = "len", array_length_pos = 
1.1)] Gst.Video.Format[:uint]? formats);
                [CCode (cheader_filename = "gst/video/video.h")]
                [Version (since = "1.18")]
-               public static Gst.Caps make_raw_caps_with_features ([CCode (array_length_cname = "len", 
array_length_pos = 1.5, array_length_type = "guint")] Gst.Video.Format[]? formats, owned Gst.CapsFeatures? 
features);
+               public static Gst.Caps make_raw_caps_with_features ([CCode (array_length_cname = "len", 
array_length_pos = 1.5)] Gst.Video.Format[:uint]? formats, owned Gst.CapsFeatures? features);
                [CCode (cheader_filename = "gst/video/video.h")]
                [Version (since = "1.18")]
                public static bool mastering_display_info_from_string (out Gst.Video.MasteringDisplayInfo 
minfo, string mastering);
diff --git a/vapi/gtk+-3.0.vapi b/vapi/gtk+-3.0.vapi
index 41f673f9b..0f340be01 100644
--- a/vapi/gtk+-3.0.vapi
+++ b/vapi/gtk+-3.0.vapi
@@ -452,8 +452,8 @@ namespace Gtk {
                [Version (since = "2.14")]
                public Gdk.ModifierType get_modifier_mask ();
                public void @lock ();
-               [CCode (array_length_pos = 2.1, array_length_type = "guint")]
-               public unowned Gtk.AccelGroupEntry[]? query (uint accel_key, Gdk.ModifierType accel_mods);
+               [CCode (array_length_pos = 2.1)]
+               public unowned Gtk.AccelGroupEntry[:uint]? query (uint accel_key, Gdk.ModifierType 
accel_mods);
                public void @unlock ();
                public bool is_locked { get; }
                public Gdk.ModifierType modifier_mask { get; }
@@ -657,17 +657,17 @@ namespace Gtk {
                [Version (since = "2.4")]
                public void add_action_with_accel (Gtk.Action action, string? accelerator);
                [Version (since = "2.4")]
-               public void add_actions ([CCode (array_length_cname = "n_entries", array_length_pos = 1.5, 
array_length_type = "guint")] Gtk.ActionEntry[] entries, void* user_data);
+               public void add_actions ([CCode (array_length_cname = "n_entries", array_length_pos = 1.5)] 
Gtk.ActionEntry[:uint] entries, void* user_data);
                [Version (since = "2.4")]
-               public void add_actions_full ([CCode (array_length_cname = "n_entries", array_length_pos = 
1.5, array_length_type = "guint")] Gtk.ActionEntry[] entries, void* user_data, GLib.DestroyNotify? destroy);
+               public void add_actions_full ([CCode (array_length_cname = "n_entries", array_length_pos = 
1.5)] Gtk.ActionEntry[:uint] entries, void* user_data, GLib.DestroyNotify? destroy);
                [Version (since = "2.4")]
-               public void add_radio_actions ([CCode (array_length_cname = "n_entries", array_length_pos = 
1.5, array_length_type = "guint")] Gtk.RadioActionEntry[] entries, int value, [CCode (type = "GCallback")] 
Gtk.RadioActionCallback on_change);
+               public void add_radio_actions ([CCode (array_length_cname = "n_entries", array_length_pos = 
1.5)] Gtk.RadioActionEntry[:uint] entries, int value, [CCode (type = "GCallback")] Gtk.RadioActionCallback 
on_change);
                [Version (since = "2.4")]
-               public void add_radio_actions_full ([CCode (array_length_cname = "n_entries", 
array_length_pos = 1.5, array_length_type = "guint")] Gtk.RadioActionEntry[] entries, int value, [CCode (type 
= "GCallback")] owned Gtk.RadioActionCallback on_change);
+               public void add_radio_actions_full ([CCode (array_length_cname = "n_entries", 
array_length_pos = 1.5)] Gtk.RadioActionEntry[:uint] entries, int value, [CCode (type = "GCallback")] owned 
Gtk.RadioActionCallback on_change);
                [Version (since = "2.4")]
-               public void add_toggle_actions ([CCode (array_length_cname = "n_entries", array_length_pos = 
1.5, array_length_type = "guint")] Gtk.ToggleActionEntry[] entries, void* user_data);
+               public void add_toggle_actions ([CCode (array_length_cname = "n_entries", array_length_pos = 
1.5)] Gtk.ToggleActionEntry[:uint] entries, void* user_data);
                [Version (since = "2.4")]
-               public void add_toggle_actions_full ([CCode (array_length_cname = "n_entries", 
array_length_pos = 1.5, array_length_type = "guint")] Gtk.ToggleActionEntry[] entries, void* user_data, 
GLib.DestroyNotify? destroy);
+               public void add_toggle_actions_full ([CCode (array_length_cname = "n_entries", 
array_length_pos = 1.5)] Gtk.ToggleActionEntry[:uint] entries, void* user_data, GLib.DestroyNotify? destroy);
                [Version (since = "3.6")]
                public unowned Gtk.AccelGroup get_accel_group ();
                [Version (since = "2.4")]
@@ -1102,8 +1102,8 @@ namespace Gtk {
        [CCode (cheader_filename = "gtk/gtk.h", has_type_id = false)]
        [Compact]
        public class BindingSignal {
-               [CCode (array_length_cname = "n_args", array_length_type = "guint")]
-               public weak Gtk.BindingArg[] args;
+               [CCode (array_length_cname = "n_args")]
+               public weak Gtk.BindingArg[:uint] args;
                public uint n_args;
                public weak Gtk.BindingSignal next;
                public weak string signal_name;
@@ -1452,9 +1452,9 @@ namespace Gtk {
                public virtual bool is_activatable ();
                [Version (since = "3.0")]
                public bool is_focus_sibling (Gtk.CellRenderer renderer, Gtk.CellRenderer sibling);
-               [CCode (array_length_pos = 0.1, array_length_type = "guint", cname = 
"gtk_cell_area_class_list_cell_properties")]
+               [CCode (array_length_pos = 0.1, cname = "gtk_cell_area_class_list_cell_properties")]
                [Version (since = "3.0")]
-               public class (unowned GLib.ParamSpec)[] list_cell_properties ();
+               public class (unowned GLib.ParamSpec)[:uint] list_cell_properties ();
                [Version (since = "3.0")]
                public virtual void remove (Gtk.CellRenderer renderer);
                [Version (since = "3.0")]
@@ -2009,16 +2009,16 @@ namespace Gtk {
                [Version (since = "2.6")]
                public void set_image (Gdk.Pixbuf pixbuf);
                public void set_text (string text, int len);
-               public bool set_with_data ([CCode (array_length_cname = "n_targets", array_length_pos = 1.5, 
array_length_type = "guint")] Gtk.TargetEntry[] targets, [CCode (scope = "async")] Gtk.ClipboardGetFunc 
get_func, [CCode (scope = "async")] Gtk.ClipboardClearFunc clear_func, void* user_data);
-               public bool set_with_owner ([CCode (array_length_cname = "n_targets", array_length_pos = 1.5, 
array_length_type = "guint")] Gtk.TargetEntry[] targets, [CCode (scope = "async")] Gtk.ClipboardGetFunc 
get_func, [CCode (scope = "async")] Gtk.ClipboardClearFunc clear_func, GLib.Object owner);
+               public bool set_with_data ([CCode (array_length_cname = "n_targets", array_length_pos = 1.5)] 
Gtk.TargetEntry[:uint] targets, [CCode (scope = "async")] Gtk.ClipboardGetFunc get_func, [CCode (scope = 
"async")] Gtk.ClipboardClearFunc clear_func, void* user_data);
+               public bool set_with_owner ([CCode (array_length_cname = "n_targets", array_length_pos = 
1.5)] Gtk.TargetEntry[:uint] targets, [CCode (scope = "async")] Gtk.ClipboardGetFunc get_func, [CCode (scope 
= "async")] Gtk.ClipboardClearFunc clear_func, GLib.Object owner);
                [Version (since = "2.6")]
                public void store ();
                public Gtk.SelectionData? wait_for_contents (Gdk.Atom target);
                [Version (since = "2.6")]
                public Gdk.Pixbuf? wait_for_image ();
-               [CCode (array_length_pos = 2.1, array_length_type = "gsize")]
+               [CCode (array_length_pos = 2.1)]
                [Version (since = "2.10")]
-               public uint8[]? wait_for_rich_text (Gtk.TextBuffer buffer, out Gdk.Atom format);
+               public uint8[:size_t]? wait_for_rich_text (Gtk.TextBuffer buffer, out Gdk.Atom format);
                [Version (since = "2.4")]
                public bool wait_for_targets ([CCode (array_length_cname = "n_targets", array_length_pos = 
1.1)] out Gdk.Atom[] targets);
                public string? wait_for_text ();
@@ -2364,11 +2364,11 @@ namespace Gtk {
                public class void handle_border_width ();
                [CCode (cname = "gtk_container_class_install_child_properties")]
                [Version (since = "3.18")]
-               public class void install_child_properties ([CCode (array_length_cname = "n_pspecs", 
array_length_pos = 0.5, array_length_type = "guint")] GLib.ParamSpec[] pspecs);
+               public class void install_child_properties ([CCode (array_length_cname = "n_pspecs", 
array_length_pos = 0.5)] GLib.ParamSpec[:uint] pspecs);
                [CCode (cname = "gtk_container_class_install_child_property")]
                public class void install_child_property (uint property_id, GLib.ParamSpec pspec);
-               [CCode (array_length_pos = 0.1, array_length_type = "guint", cname = 
"gtk_container_class_list_child_properties")]
-               public class (unowned GLib.ParamSpec)[] list_child_properties ();
+               [CCode (array_length_pos = 0.1, cname = "gtk_container_class_list_child_properties")]
+               public class (unowned GLib.ParamSpec)[:uint] list_child_properties ();
                public void propagate_draw (Gtk.Widget child, Cairo.Context cr);
                [Version (deprecated = true, deprecated_since = "3.10")]
                public void resize_children ();
@@ -2423,7 +2423,7 @@ namespace Gtk {
                public static unowned Gtk.CssProvider get_default ();
                public static unowned Gtk.CssProvider get_named (string name, string? variant);
                [CCode (cname = "gtk_css_provider_load_from_data")]
-               public bool load_from_buffer ([CCode (array_length_cname = "length", array_length_pos = 1.1, 
array_length_type = "gssize")] uint8[] data) throws GLib.Error;
+               public bool load_from_buffer ([CCode (array_length_cname = "length", array_length_pos = 1.1)] 
uint8[:ssize_t] data) throws GLib.Error;
                public bool load_from_data (string data, ssize_t length = -1) throws GLib.Error;
                public bool load_from_file (GLib.File file) throws GLib.Error;
                public bool load_from_path (string path) throws GLib.Error;
@@ -2777,7 +2777,7 @@ namespace Gtk {
                public EntryBuffer ([CCode (array_length_cname = "n_initial_chars", array_length_pos = 1.1, 
type = "const gchar*")] uint8[]? initial_chars = null);
                public virtual uint delete_text (uint position, uint n_chars);
                public void emit_deleted_text (uint position, uint n_chars);
-               public void emit_inserted_text (uint position, [CCode (array_length_cname = "n_chars", 
array_length_pos = 2.1, array_length_type = "guint", type = "const gchar*")] uint8[] chars);
+               public void emit_inserted_text (uint position, [CCode (array_length_cname = "n_chars", 
array_length_pos = 2.1, type = "const gchar*")] uint8[:uint] chars);
                public size_t get_bytes ();
                public virtual uint get_length ();
                public int get_max_length ();
@@ -2785,7 +2785,7 @@ namespace Gtk {
                [CCode (vfunc_name = "get_text")]
                [NoWrapper]
                public virtual unowned string get_text_internal (out size_t n_bytes = null);
-               public virtual uint insert_text (uint position, [CCode (array_length_cname = "n_chars", 
array_length_pos = 2.1, array_length_type = "guint", type = "const gchar*")] uint8[] chars);
+               public virtual uint insert_text (uint position, [CCode (array_length_cname = "n_chars", 
array_length_pos = 2.1, type = "const gchar*")] uint8[:uint] chars);
                public void set_max_length (int max_length);
                public void set_text ([CCode (array_length_cname = "n_chars", array_length_pos = 1.1, type = 
"const gchar*")] uint8[] chars);
                public uint length { get; }
@@ -6401,14 +6401,14 @@ namespace Gtk {
                public time_t get_added ();
                public int get_age ();
                public bool get_application_info (string app_name, out unowned string app_exec, out uint 
count, [CCode (type = "time_t*")] out time_t time_);
-               [CCode (array_length = true, array_length_pos = 0.1, array_length_type = "gsize", 
array_null_terminated = true)]
-               public string[] get_applications ();
+               [CCode (array_length = true, array_length_pos = 0.1, array_null_terminated = true)]
+               public string[:size_t] get_applications ();
                public unowned string get_description ();
                public unowned string get_display_name ();
                [Version (since = "2.22")]
                public GLib.Icon? get_gicon ();
-               [CCode (array_length = true, array_length_pos = 0.1, array_length_type = "gsize", 
array_null_terminated = true)]
-               public string[] get_groups ();
+               [CCode (array_length = true, array_length_pos = 0.1, array_null_terminated = true)]
+               public string[:size_t] get_groups ();
                public Gdk.Pixbuf? get_icon (int size);
                public unowned string get_mime_type ();
                public time_t get_modified ();
@@ -7819,13 +7819,13 @@ namespace Gtk {
        [Compact]
        public class TargetList {
                [CCode (has_construct_function = false)]
-               public TargetList ([CCode (array_length_cname = "ntargets", array_length_pos = 1.1, 
array_length_type = "guint")] Gtk.TargetEntry[]? targets);
+               public TargetList ([CCode (array_length_cname = "ntargets", array_length_pos = 1.1)] 
Gtk.TargetEntry[:uint]? targets);
                public void add (Gdk.Atom target, uint flags, uint info);
                [Version (since = "2.6")]
                public void add_image_targets (uint info, bool writable);
                [Version (since = "2.10")]
                public void add_rich_text_targets (uint info, bool deserializable, Gtk.TextBuffer buffer);
-               public void add_table ([CCode (array_length_cname = "ntargets", array_length_pos = 1.1, 
array_length_type = "guint")] Gtk.TargetEntry[] targets);
+               public void add_table ([CCode (array_length_cname = "ntargets", array_length_pos = 1.1)] 
Gtk.TargetEntry[:uint] targets);
                [Version (since = "2.6")]
                public void add_text_targets (uint info);
                [Version (since = "2.6")]
@@ -7896,7 +7896,7 @@ namespace Gtk {
                public void delete_mark_by_name (string name);
                public bool delete_selection (bool interactive, bool default_editable);
                [Version (since = "2.10")]
-               public bool deserialize (Gtk.TextBuffer content_buffer, Gdk.Atom format, Gtk.TextIter iter, 
[CCode (array_length_cname = "length", array_length_pos = 4.1, array_length_type = "gsize")] uint8[] data) 
throws GLib.Error;
+               public bool deserialize (Gtk.TextBuffer content_buffer, Gdk.Atom format, Gtk.TextIter iter, 
[CCode (array_length_cname = "length", array_length_pos = 4.1)] uint8[:size_t] data) throws GLib.Error;
                [Version (since = "2.10")]
                public bool deserialize_get_can_create_tags (Gdk.Atom format);
                [Version (since = "2.10")]
@@ -7959,9 +7959,9 @@ namespace Gtk {
                public void remove_tag_by_name (string name, Gtk.TextIter start, Gtk.TextIter end);
                [Version (since = "2.4")]
                public void select_range (Gtk.TextIter ins, Gtk.TextIter bound);
-               [CCode (array_length_pos = 4.1, array_length_type = "gsize")]
+               [CCode (array_length_pos = 4.1)]
                [Version (since = "2.10")]
-               public uint8[] serialize (Gtk.TextBuffer content_buffer, Gdk.Atom format, Gtk.TextIter start, 
Gtk.TextIter end);
+               public uint8[:size_t] serialize (Gtk.TextBuffer content_buffer, Gdk.Atom format, Gtk.TextIter 
start, Gtk.TextIter end);
                public void set_modified (bool setting);
                public void set_text (string text, int len = -1);
                [Version (since = "2.10")]
@@ -8830,7 +8830,7 @@ namespace Gtk {
                public TreePath.from_indices (...);
                [CCode (has_construct_function = false)]
                [Version (since = "3.12")]
-               public TreePath.from_indicesv ([CCode (array_length_cname = "length", array_length_pos = 1.1, 
array_length_type = "gsize")] int[] indices);
+               public TreePath.from_indicesv ([CCode (array_length_cname = "length", array_length_pos = 
1.1)] int[:size_t] indices);
                [CCode (has_construct_function = false)]
                public TreePath.from_string (string path);
                public int get_depth ();
@@ -9386,7 +9386,7 @@ namespace Gtk {
                [Version (since = "3.0")]
                public bool device_is_shadowed (Gdk.Device device);
                [NoWrapper]
-               public virtual void dispatch_child_properties_changed ([CCode (array_length_cname = 
"n_pspecs", array_length_pos = 0.5, array_length_type = "guint", type = "GParamSpec**")] GLib.ParamSpec[] 
pspecs);
+               public virtual void dispatch_child_properties_changed ([CCode (array_length_cname = 
"n_pspecs", array_length_pos = 0.5, type = "GParamSpec**")] GLib.ParamSpec[:uint] pspecs);
                [CCode (cname = "gtk_widget_draw")]
                [Version (since = "3.0")]
                public void draw_to_cairo_context (Cairo.Context cr);
@@ -9595,9 +9595,9 @@ namespace Gtk {
                public (unowned string)[] list_action_prefixes ();
                [Version (since = "2.4")]
                public GLib.List<weak Gtk.Widget> list_mnemonic_labels ();
-               [CCode (array_length_pos = 0.1, array_length_type = "guint", cname = 
"gtk_widget_class_list_style_properties")]
+               [CCode (array_length_pos = 0.1, cname = "gtk_widget_class_list_style_properties")]
                [Version (since = "2.2")]
-               public class (unowned GLib.ParamSpec)[] list_style_properties ();
+               public class (unowned GLib.ParamSpec)[:uint] list_style_properties ();
                [Version (deprecated = true, deprecated_since = "3.0", replacement = 
"override_background_color")]
                public void modify_base (Gtk.StateType state, Gdk.Color? color);
                [Version (deprecated = true, deprecated_since = "3.0", replacement = 
"override_background_color")]
@@ -10702,9 +10702,9 @@ namespace Gtk {
                public bool get_show_tips ();
                [Version (since = "2.10")]
                public Gtk.RecentSortType get_sort_type ();
-               [CCode (array_length = true, array_length_pos = 0.1, array_length_type = "gsize", 
array_null_terminated = true)]
+               [CCode (array_length = true, array_length_pos = 0.1, array_null_terminated = true)]
                [Version (since = "2.10")]
-               public string[] get_uris ();
+               public string[:size_t] get_uris ();
                [Version (since = "2.10")]
                public abstract GLib.SList<weak Gtk.RecentFilter> list_filters ();
                [Version (since = "2.10")]
@@ -12329,7 +12329,7 @@ namespace Gtk {
        public delegate void ClipboardReceivedFunc (Gtk.Clipboard clipboard, Gtk.SelectionData 
selection_data);
        [CCode (cheader_filename = "gtk/gtk.h", instance_pos = 3.9)]
        [Version (since = "2.10")]
-       public delegate void ClipboardRichTextReceivedFunc (Gtk.Clipboard clipboard, Gdk.Atom format, [CCode 
(array_length_cname = "length", array_length_pos = 3.1, array_length_type = "gsize", type = "const guint8*")] 
uint8[]? text);
+       public delegate void ClipboardRichTextReceivedFunc (Gtk.Clipboard clipboard, Gdk.Atom format, [CCode 
(array_length_cname = "length", array_length_pos = 3.1, type = "const guint8*")] uint8[:size_t]? text);
        [CCode (cheader_filename = "gtk/gtk.h", instance_pos = 2.9)]
        [Version (since = "2.4")]
        public delegate void ClipboardTargetsReceivedFunc (Gtk.Clipboard clipboard, [CCode 
(array_length_cname = "n_atoms", array_length_pos = 2.1)] Gdk.Atom[]? atoms);
@@ -12405,9 +12405,9 @@ namespace Gtk {
        [CCode (cheader_filename = "gtk/gtk.h", has_target = false)]
        public delegate bool StylePropertyParser (string str, GLib.Value value) throws GLib.Error;
        [CCode (cheader_filename = "gtk/gtk.h", instance_pos = 5.9)]
-       public delegate bool TextBufferDeserializeFunc (Gtk.TextBuffer register_buffer, Gtk.TextBuffer 
content_buffer, Gtk.TextIter iter, [CCode (array_length_cname = "length", array_length_pos = 4.5, 
array_length_type = "gsize")] uint8[] data, bool create_tags) throws GLib.Error;
-       [CCode (array_length_pos = 4.1, array_length_type = "gsize", cheader_filename = "gtk/gtk.h", 
instance_pos = 4.9)]
-       public delegate uint8[]? TextBufferSerializeFunc (Gtk.TextBuffer register_buffer, Gtk.TextBuffer 
content_buffer, Gtk.TextIter start, Gtk.TextIter end);
+       public delegate bool TextBufferDeserializeFunc (Gtk.TextBuffer register_buffer, Gtk.TextBuffer 
content_buffer, Gtk.TextIter iter, [CCode (array_length_cname = "length", array_length_pos = 4.5)] 
uint8[:size_t] data, bool create_tags) throws GLib.Error;
+       [CCode (array_length_pos = 4.1, cheader_filename = "gtk/gtk.h", instance_pos = 4.9)]
+       public delegate uint8[:size_t]? TextBufferSerializeFunc (Gtk.TextBuffer register_buffer, 
Gtk.TextBuffer content_buffer, Gtk.TextIter start, Gtk.TextIter end);
        [CCode (cheader_filename = "gtk/gtk.h", instance_pos = 1.9)]
        public delegate bool TextCharPredicate (unichar ch);
        [CCode (cheader_filename = "gtk/gtk.h", instance_pos = 1.9)]
@@ -13164,7 +13164,7 @@ namespace Gtk {
        [CCode (cheader_filename = "gtk/gtk.h")]
        public static void selection_add_target (Gtk.Widget widget, Gdk.Atom selection, Gdk.Atom target, uint 
info);
        [CCode (cheader_filename = "gtk/gtk.h")]
-       public static void selection_add_targets (Gtk.Widget widget, Gdk.Atom selection, [CCode 
(array_length_cname = "ntargets", array_length_pos = 3.1, array_length_type = "guint")] Gtk.TargetEntry[] 
targets);
+       public static void selection_add_targets (Gtk.Widget widget, Gdk.Atom selection, [CCode 
(array_length_cname = "ntargets", array_length_pos = 3.1)] Gtk.TargetEntry[:uint] targets);
        [CCode (cheader_filename = "gtk/gtk.h")]
        public static void selection_clear_targets (Gtk.Widget widget, Gdk.Atom selection);
        [CCode (cheader_filename = "gtk/gtk.h")]
@@ -13189,10 +13189,10 @@ namespace Gtk {
        public static bool show_uri_on_window (Gtk.Window? parent, string uri, uint32 timestamp) throws 
GLib.Error;
        [CCode (cheader_filename = "gtk/gtk.h")]
        [Version (deprecated = true, deprecated_since = "3.10")]
-       public static void stock_add ([CCode (array_length_cname = "n_items", array_length_pos = 1.1, 
array_length_type = "guint")] Gtk.StockItem[] items);
+       public static void stock_add ([CCode (array_length_cname = "n_items", array_length_pos = 1.1)] 
Gtk.StockItem[:uint] items);
        [CCode (cheader_filename = "gtk/gtk.h")]
        [Version (deprecated = true, deprecated_since = "3.10")]
-       public static void stock_add_static ([CCode (array_length_cname = "n_items", array_length_pos = 1.1, 
array_length_type = "guint")] Gtk.StockItem[] items);
+       public static void stock_add_static ([CCode (array_length_cname = "n_items", array_length_pos = 1.1)] 
Gtk.StockItem[:uint] items);
        [CCode (cheader_filename = "gtk/gtk.h")]
        [Version (deprecated = true, deprecated_since = "3.10")]
        public static GLib.SList<string> stock_list_ids ();
@@ -13241,9 +13241,9 @@ namespace Gtk {
        [CCode (cheader_filename = "gtk/gtk.h")]
        [Version (since = "2.14")]
        public static void test_init ([CCode (array_length_cname = "argcp", array_length_pos = 0.5)] ref 
unowned string[] argvp, ...);
-       [CCode (array_length = true, array_length_pos = 0.1, array_length_type = "guint", 
array_null_terminated = true, cheader_filename = "gtk/gtk.h")]
+       [CCode (array_length = true, array_length_pos = 0.1, array_null_terminated = true, cheader_filename = 
"gtk/gtk.h")]
        [Version (since = "2.14")]
-       public static unowned GLib.Type[] test_list_all_types ();
+       public static unowned GLib.Type[:uint] test_list_all_types ();
        [CCode (cheader_filename = "gtk/gtk.h")]
        [Version (since = "2.14")]
        public static void test_register_all_types ();
diff --git a/vapi/gtk4.vapi b/vapi/gtk4.vapi
index 82991423d..1a8fdaccc 100644
--- a/vapi/gtk4.vapi
+++ b/vapi/gtk4.vapi
@@ -4837,15 +4837,15 @@ namespace Gdk {
        [Compact]
        public class ContentFormats {
                [CCode (has_construct_function = false)]
-               public ContentFormats ([CCode (array_length_cname = "n_mime_types", array_length_pos = 1.1, 
array_length_type = "guint")] string[]? mime_types);
+               public ContentFormats ([CCode (array_length_cname = "n_mime_types", array_length_pos = 1.1)] 
string[:uint]? mime_types);
                public bool contain_gtype (GLib.Type type);
                public bool contain_mime_type (string mime_type);
                [CCode (has_construct_function = false)]
                public ContentFormats.for_gtype (GLib.Type type);
-               [CCode (array_length = true, array_length_pos = 0.1, array_length_type = "gsize", 
array_null_terminated = true)]
-               public unowned GLib.Type[]? get_gtypes ();
-               [CCode (array_length = true, array_length_pos = 0.1, array_length_type = "gsize", 
array_null_terminated = true)]
-               public unowned string[]? get_mime_types ();
+               [CCode (array_length = true, array_length_pos = 0.1, array_null_terminated = true)]
+               public unowned GLib.Type[:size_t]? get_gtypes ();
+               [CCode (array_length = true, array_length_pos = 0.1, array_null_terminated = true)]
+               public unowned string[:size_t]? get_mime_types ();
                public bool match (Gdk.ContentFormats second);
                public GLib.Type match_gtype (Gdk.ContentFormats second);
                public unowned string? match_mime_type (Gdk.ContentFormats second);
@@ -4892,7 +4892,7 @@ namespace Gdk {
                public virtual Gdk.ContentFormats ref_formats ();
                public virtual Gdk.ContentFormats ref_storable_formats ();
                [CCode (has_construct_function = false)]
-               public ContentProvider.union ([CCode (array_length_cname = "n_providers", array_length_pos = 
1.1, array_length_type = "gsize")] owned Gdk.ContentProvider[]? providers);
+               public ContentProvider.union ([CCode (array_length_cname = "n_providers", array_length_pos = 
1.1)] owned Gdk.ContentProvider[:size_t]? providers);
                public virtual async bool write_mime_type_async (string mime_type, GLib.OutputStream stream, 
int io_priority, GLib.Cancellable? cancellable) throws GLib.Error;
                [NoAccessorMethod]
                public Gdk.ContentFormats formats { owned get; }
@@ -5133,7 +5133,7 @@ namespace Gdk {
                protected Event ();
                [CCode (cname = "gdk_events_get_angle")]
                public static bool get_angle (Gdk.Event event1, Gdk.Event event2, out double angle);
-               public bool get_axes ([CCode (array_length_cname = "n_axes", array_length_pos = 1.1, 
array_length_type = "guint")] out unowned double[] axes);
+               public bool get_axes ([CCode (array_length_cname = "n_axes", array_length_pos = 1.1)] out 
unowned double[:uint] axes);
                public bool get_axis (Gdk.AxisUse axis_use, out double value);
                [CCode (cname = "gdk_events_get_center")]
                public static bool get_center (Gdk.Event event1, Gdk.Event event2, out double x, out double 
y);
@@ -5144,8 +5144,8 @@ namespace Gdk {
                public static bool get_distance (Gdk.Event event1, Gdk.Event event2, out double distance);
                public unowned Gdk.EventSequence get_event_sequence ();
                public Gdk.EventType get_event_type ();
-               [CCode (array_length_pos = 0.1, array_length_type = "guint")]
-               public Gdk.TimeCoord[]? get_history ();
+               [CCode (array_length_pos = 0.1)]
+               public Gdk.TimeCoord[:uint]? get_history ();
                public Gdk.ModifierType get_modifier_state ();
                public bool get_pointer_emulated ();
                public bool get_position (out double x, out double y);
@@ -6017,19 +6017,19 @@ namespace Gsk {
        [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_conic_gradient_node_get_type ()")]
        public class ConicGradientNode : Gsk.RenderNode {
                [CCode (has_construct_function = false, type = "GskRenderNode*")]
-               public ConicGradientNode (Graphene.Rect bounds, Graphene.Point center, float rotation, [CCode 
(array_length_cname = "n_color_stops", array_length_pos = 4.1, array_length_type = "gsize")] Gsk.ColorStop[] 
color_stops);
+               public ConicGradientNode (Graphene.Rect bounds, Graphene.Point center, float rotation, [CCode 
(array_length_cname = "n_color_stops", array_length_pos = 4.1)] Gsk.ColorStop[:size_t] color_stops);
                [Version (since = "4.2")]
                public float get_angle ();
                public unowned Graphene.Point? get_center ();
-               [CCode (array_length_pos = 0.1, array_length_type = "gsize")]
-               public unowned Gsk.ColorStop[] get_color_stops ();
+               [CCode (array_length_pos = 0.1)]
+               public unowned Gsk.ColorStop[:size_t] get_color_stops ();
                public size_t get_n_color_stops ();
                public float get_rotation ();
        }
        [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_container_node_get_type ()")]
        public class ContainerNode : Gsk.RenderNode {
                [CCode (has_construct_function = false, type = "GskRenderNode*")]
-               public ContainerNode ([CCode (array_length_cname = "n_children", array_length_pos = 1.1, 
array_length_type = "guint")] Gsk.RenderNode[] children);
+               public ContainerNode ([CCode (array_length_cname = "n_children", array_length_pos = 1.1)] 
Gsk.RenderNode[:uint] children);
                public unowned Gsk.RenderNode get_child (uint idx);
                public uint get_n_children ();
        }
@@ -6086,7 +6086,7 @@ namespace Gsk {
        [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_gl_shader_node_get_type ()")]
        public class GLShaderNode : Gsk.RenderNode {
                [CCode (has_construct_function = false, type = "GskRenderNode*")]
-               public GLShaderNode (Gsk.GLShader shader, Graphene.Rect bounds, GLib.Bytes args, [CCode 
(array_length_cname = "n_children", array_length_pos = 4.1, array_length_type = "guint")] Gsk.RenderNode[] 
children);
+               public GLShaderNode (Gsk.GLShader shader, Graphene.Rect bounds, GLib.Bytes args, [CCode 
(array_length_cname = "n_children", array_length_pos = 4.1)] Gsk.RenderNode[:uint] children);
                public unowned GLib.Bytes get_args ();
                public unowned Gsk.RenderNode get_child (uint idx);
                public uint get_n_children ();
@@ -6106,9 +6106,9 @@ namespace Gsk {
        [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_linear_gradient_node_get_type ()")]
        public class LinearGradientNode : Gsk.RenderNode {
                [CCode (has_construct_function = false, type = "GskRenderNode*")]
-               public LinearGradientNode (Graphene.Rect bounds, Graphene.Point start, Graphene.Point end, 
[CCode (array_length_cname = "n_color_stops", array_length_pos = 4.1, array_length_type = "gsize")] 
Gsk.ColorStop[] color_stops);
-               [CCode (array_length_pos = 0.1, array_length_type = "gsize")]
-               public unowned Gsk.ColorStop[] get_color_stops ();
+               public LinearGradientNode (Graphene.Rect bounds, Graphene.Point start, Graphene.Point end, 
[CCode (array_length_cname = "n_color_stops", array_length_pos = 4.1)] Gsk.ColorStop[:size_t] color_stops);
+               [CCode (array_length_pos = 0.1)]
+               public unowned Gsk.ColorStop[:size_t] get_color_stops ();
                public unowned Graphene.Point? get_end ();
                public size_t get_n_color_stops ();
                public unowned Graphene.Point? get_start ();
@@ -6140,10 +6140,10 @@ namespace Gsk {
        [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_radial_gradient_node_get_type ()")]
        public class RadialGradientNode : Gsk.RenderNode {
                [CCode (has_construct_function = false, type = "GskRenderNode*")]
-               public RadialGradientNode (Graphene.Rect bounds, Graphene.Point center, float hradius, float 
vradius, float start, float end, [CCode (array_length_cname = "n_color_stops", array_length_pos = 7.1, 
array_length_type = "gsize")] Gsk.ColorStop[] color_stops);
+               public RadialGradientNode (Graphene.Rect bounds, Graphene.Point center, float hradius, float 
vradius, float start, float end, [CCode (array_length_cname = "n_color_stops", array_length_pos = 7.1)] 
Gsk.ColorStop[:size_t] color_stops);
                public unowned Graphene.Point? get_center ();
-               [CCode (array_length_pos = 0.1, array_length_type = "gsize")]
-               public unowned Gsk.ColorStop[] get_color_stops ();
+               [CCode (array_length_pos = 0.1)]
+               public unowned Gsk.ColorStop[:size_t] get_color_stops ();
                public float get_end ();
                public float get_hradius ();
                public size_t get_n_color_stops ();
@@ -6189,12 +6189,12 @@ namespace Gsk {
        [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_repeating_linear_gradient_node_get_type ()")]
        public class RepeatingLinearGradientNode : Gsk.RenderNode {
                [CCode (has_construct_function = false, type = "GskRenderNode*")]
-               public RepeatingLinearGradientNode (Graphene.Rect bounds, Graphene.Point start, 
Graphene.Point end, [CCode (array_length_cname = "n_color_stops", array_length_pos = 4.1, array_length_type = 
"gsize")] Gsk.ColorStop[] color_stops);
+               public RepeatingLinearGradientNode (Graphene.Rect bounds, Graphene.Point start, 
Graphene.Point end, [CCode (array_length_cname = "n_color_stops", array_length_pos = 4.1)] 
Gsk.ColorStop[:size_t] color_stops);
        }
        [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_repeating_radial_gradient_node_get_type ()")]
        public class RepeatingRadialGradientNode : Gsk.RenderNode {
                [CCode (has_construct_function = false, type = "GskRenderNode*")]
-               public RepeatingRadialGradientNode (Graphene.Rect bounds, Graphene.Point center, float 
hradius, float vradius, float start, float end, [CCode (array_length_cname = "n_color_stops", 
array_length_pos = 7.1, array_length_type = "gsize")] Gsk.ColorStop[] color_stops);
+               public RepeatingRadialGradientNode (Graphene.Rect bounds, Graphene.Point center, float 
hradius, float vradius, float start, float end, [CCode (array_length_cname = "n_color_stops", 
array_length_pos = 7.1)] Gsk.ColorStop[:size_t] color_stops);
        }
        [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_rounded_clip_node_get_type ()")]
        public class RoundedClipNode : Gsk.RenderNode {
@@ -6222,7 +6222,7 @@ namespace Gsk {
        [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_shadow_node_get_type ()")]
        public class ShadowNode : Gsk.RenderNode {
                [CCode (has_construct_function = false, type = "GskRenderNode*")]
-               public ShadowNode (Gsk.RenderNode child, [CCode (array_length_cname = "n_shadows", 
array_length_pos = 2.1, array_length_type = "gsize")] Gsk.Shadow[] shadows);
+               public ShadowNode (Gsk.RenderNode child, [CCode (array_length_cname = "n_shadows", 
array_length_pos = 2.1)] Gsk.Shadow[:size_t] shadows);
                public unowned Gsk.RenderNode get_child ();
                public size_t get_n_shadows ();
                public unowned Gsk.Shadow? get_shadow (size_t i);
@@ -6233,8 +6233,8 @@ namespace Gsk {
                public TextNode (Pango.Font font, Pango.GlyphString glyphs, Gdk.RGBA color, Graphene.Point 
offset);
                public unowned Gdk.RGBA? get_color ();
                public unowned Pango.Font get_font ();
-               [CCode (array_length_pos = 0.1, array_length_type = "guint")]
-               public unowned Pango.GlyphInfo[] get_glyphs ();
+               [CCode (array_length_pos = 0.1)]
+               public unowned Pango.GlyphInfo[:uint] get_glyphs ();
                public uint get_num_glyphs ();
                public unowned Graphene.Point? get_offset ();
                public bool has_color_glyphs ();
@@ -6930,7 +6930,7 @@ namespace Gtk {
        [CCode (cheader_filename = "gtk/gtk.h", type_id = "gtk_cclosure_expression_get_type ()")]
        public class CClosureExpression : Gtk.Expression {
                [CCode (has_construct_function = false, type = "GtkExpression*")]
-               public CClosureExpression (GLib.Type value_type, GLib.ClosureMarshal? marshal, [CCode 
(array_length_cname = "n_params", array_length_pos = 2.5, array_length_type = "guint")] owned 
Gtk.Expression[] @params, GLib.Callback callback_func, void* user_data, GLib.ClosureNotify? user_destroy);
+               public CClosureExpression (GLib.Type value_type, GLib.ClosureMarshal? marshal, [CCode 
(array_length_cname = "n_params", array_length_pos = 2.5)] owned Gtk.Expression[:uint] @params, GLib.Callback 
callback_func, void* user_data, GLib.ClosureNotify? user_destroy);
        }
        [CCode (cheader_filename = "gtk/gtk.h", type_id = "gtk_calendar_get_type ()")]
        public class Calendar : Gtk.Widget, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
@@ -7015,8 +7015,8 @@ namespace Gtk {
                public class void install_cell_property (uint property_id, GLib.ParamSpec pspec);
                public virtual bool is_activatable ();
                public bool is_focus_sibling (Gtk.CellRenderer renderer, Gtk.CellRenderer sibling);
-               [CCode (array_length_pos = 0.1, array_length_type = "guint", cname = 
"gtk_cell_area_class_list_cell_properties")]
-               public class (unowned GLib.ParamSpec)[] list_cell_properties ();
+               [CCode (array_length_pos = 0.1, cname = "gtk_cell_area_class_list_cell_properties")]
+               public class (unowned GLib.ParamSpec)[:uint] list_cell_properties ();
                public virtual void remove (Gtk.CellRenderer renderer);
                public void remove_focus_sibling (Gtk.CellRenderer renderer, Gtk.CellRenderer sibling);
                public void request_renderer (Gtk.CellRenderer renderer, Gtk.Orientation orientation, 
Gtk.Widget widget, int for_size, out int minimum_size, out int natural_size);
@@ -7417,7 +7417,7 @@ namespace Gtk {
        [CCode (cheader_filename = "gtk/gtk.h", type_id = "gtk_closure_expression_get_type ()")]
        public class ClosureExpression : Gtk.Expression {
                [CCode (has_construct_function = false, type = "GtkExpression*")]
-               public ClosureExpression (GLib.Type value_type, GLib.Closure closure, [CCode 
(array_length_cname = "n_params", array_length_pos = 2.5, array_length_type = "guint")] owned 
Gtk.Expression[]? @params);
+               public ClosureExpression (GLib.Type value_type, GLib.Closure closure, [CCode 
(array_length_cname = "n_params", array_length_pos = 2.5)] owned Gtk.Expression[:uint]? @params);
        }
        [CCode (cheader_filename = "gtk/gtk.h", type_id = "gtk_color_button_get_type ()")]
        public class ColorButton : Gtk.Widget, Gtk.Accessible, Gtk.Buildable, Gtk.ColorChooser, 
Gtk.ConstraintTarget {
@@ -7650,8 +7650,8 @@ namespace Gtk {
                [CCode (has_construct_function = false, type = "GtkLayoutManager*")]
                public ConstraintLayout ();
                public void add_constraint (owned Gtk.Constraint constraint);
-               public GLib.List<weak Gtk.Constraint> add_constraints_from_description ([CCode 
(array_length_cname = "n_lines", array_length_pos = 1.5, array_length_type = "gsize")] string[] lines, int 
hspacing, int vspacing, ...) throws GLib.Error;
-               public GLib.List<weak Gtk.Constraint> add_constraints_from_descriptionv ([CCode 
(array_length_cname = "n_lines", array_length_pos = 1.5, array_length_type = "gsize")] string[] lines, int 
hspacing, int vspacing, GLib.HashTable<string,Gtk.ConstraintTarget> views) throws GLib.Error;
+               public GLib.List<weak Gtk.Constraint> add_constraints_from_description ([CCode 
(array_length_cname = "n_lines", array_length_pos = 1.5)] string[:size_t] lines, int hspacing, int vspacing, 
...) throws GLib.Error;
+               public GLib.List<weak Gtk.Constraint> add_constraints_from_descriptionv ([CCode 
(array_length_cname = "n_lines", array_length_pos = 1.5)] string[:size_t] lines, int hspacing, int vspacing, 
GLib.HashTable<string,Gtk.ConstraintTarget> views) throws GLib.Error;
                public void add_guide (owned Gtk.ConstraintGuide guide);
                public GLib.ListModel observe_constraints ();
                public GLib.ListModel observe_guides ();
@@ -7668,7 +7668,7 @@ namespace Gtk {
        public class CssProvider : GLib.Object, Gtk.StyleProvider {
                [CCode (has_construct_function = false)]
                public CssProvider ();
-               public void load_from_data ([CCode (array_length_cname = "length", array_length_pos = 1.1, 
array_length_type = "gssize")] uint8[] data);
+               public void load_from_data ([CCode (array_length_cname = "length", array_length_pos = 1.1)] 
uint8[:ssize_t] data);
                public void load_from_file (GLib.File file);
                public void load_from_path (string path);
                public void load_from_resource (string resource_path);
@@ -7848,13 +7848,13 @@ namespace Gtk {
                [Version (deprecated = true, deprecated_since = "4.4")]
                public unowned Gdk.Drop? get_drop ();
                public Gdk.ContentFormats? get_formats ();
-               [CCode (array_length_pos = 0.1, array_length_type = "gsize")]
-               public unowned GLib.Type[]? get_gtypes ();
+               [CCode (array_length_pos = 0.1)]
+               public unowned GLib.Type[:size_t]? get_gtypes ();
                public bool get_preload ();
                public unowned GLib.Value? get_value ();
                public void reject ();
                public void set_actions (Gdk.DragAction actions);
-               public void set_gtypes ([CCode (array_length_cname = "n_types", array_length_pos = 1.1, 
array_length_type = "gsize")] GLib.Type[]? types);
+               public void set_gtypes ([CCode (array_length_cname = "n_types", array_length_pos = 1.1)] 
GLib.Type[:size_t]? types);
                public void set_preload (bool preload);
                public Gdk.DragAction actions { get; set; }
                [Version (since = "4.4")]
@@ -8036,7 +8036,7 @@ namespace Gtk {
                public EntryBuffer ([CCode (array_length_cname = "n_initial_chars", array_length_pos = 1.1, 
type = "const char*")] uint8[]? initial_chars = null);
                public virtual uint delete_text (uint position, uint n_chars);
                public void emit_deleted_text (uint position, uint n_chars);
-               public void emit_inserted_text (uint position, [CCode (array_length_cname = "n_chars", 
array_length_pos = 2.1, array_length_type = "guint", type = "const char*")] uint8[] chars);
+               public void emit_inserted_text (uint position, [CCode (array_length_cname = "n_chars", 
array_length_pos = 2.1, type = "const char*")] uint8[:uint] chars);
                public size_t get_bytes ();
                public virtual uint get_length ();
                public int get_max_length ();
@@ -8044,7 +8044,7 @@ namespace Gtk {
                [CCode (vfunc_name = "get_text")]
                [NoWrapper]
                public virtual unowned string get_text_internal (out size_t n_bytes = null);
-               public virtual uint insert_text (uint position, [CCode (array_length_cname = "n_chars", 
array_length_pos = 2.1, array_length_type = "guint", type = "const char*")] uint8[] chars);
+               public virtual uint insert_text (uint position, [CCode (array_length_cname = "n_chars", 
array_length_pos = 2.1, type = "const char*")] uint8[:uint] chars);
                public void set_max_length (int max_length);
                public void set_text ([CCode (array_length_cname = "n_chars", array_length_pos = 1.1, type = 
"const char*")] uint8[] chars);
                public uint length { get; }
@@ -8586,7 +8586,7 @@ namespace Gtk {
                public GestureStylus ();
                public bool get_axes ([CCode (array_length = false)] Gdk.AxisUse[] axes, [CCode (array_length 
= false)] out double[] values);
                public bool get_axis (Gdk.AxisUse axis, out double value);
-               public bool get_backlog ([CCode (array_length_cname = "n_elems", array_length_pos = 1.1, 
array_length_type = "guint")] out Gdk.TimeCoord[] backlog);
+               public bool get_backlog ([CCode (array_length_cname = "n_elems", array_length_pos = 1.1)] out 
Gdk.TimeCoord[:uint] backlog);
                public unowned Gdk.DeviceTool? get_device_tool ();
                public signal void down (double x, double y);
                public signal void motion (double x, double y);
@@ -10216,13 +10216,13 @@ namespace Gtk {
                public unowned GLib.DateTime get_added ();
                public int get_age ();
                public bool get_application_info (string app_name, out unowned string app_exec, out uint 
count, out unowned GLib.DateTime stamp);
-               [CCode (array_length = true, array_length_pos = 0.1, array_length_type = "gsize", 
array_null_terminated = true)]
-               public string[] get_applications ();
+               [CCode (array_length = true, array_length_pos = 0.1, array_null_terminated = true)]
+               public string[:size_t] get_applications ();
                public unowned string get_description ();
                public unowned string get_display_name ();
                public GLib.Icon? get_gicon ();
-               [CCode (array_length = true, array_length_pos = 0.1, array_length_type = "gsize", 
array_null_terminated = true)]
-               public string[] get_groups ();
+               [CCode (array_length = true, array_length_pos = 0.1, array_null_terminated = true)]
+               public string[:size_t] get_groups ();
                public unowned string get_mime_type ();
                public unowned GLib.DateTime get_modified ();
                public bool get_private_hint ();
@@ -10744,15 +10744,15 @@ namespace Gtk {
                public void append_border (Gsk.RoundedRect outline, [CCode (array_length = false)] float 
border_width[4], [CCode (array_length = false)] Gdk.RGBA border_color[4]);
                public Cairo.Context append_cairo (Graphene.Rect bounds);
                public void append_color (Gdk.RGBA color, Graphene.Rect bounds);
-               public void append_conic_gradient (Graphene.Rect bounds, Graphene.Point center, float 
rotation, [CCode (array_length_cname = "n_stops", array_length_pos = 4.1, array_length_type = "gsize")] 
Gsk.ColorStop[] stops);
+               public void append_conic_gradient (Graphene.Rect bounds, Graphene.Point center, float 
rotation, [CCode (array_length_cname = "n_stops", array_length_pos = 4.1)] Gsk.ColorStop[:size_t] stops);
                public void append_inset_shadow (Gsk.RoundedRect outline, Gdk.RGBA color, float dx, float dy, 
float spread, float blur_radius);
                public void append_layout (Pango.Layout layout, Gdk.RGBA color);
-               public void append_linear_gradient (Graphene.Rect bounds, Graphene.Point start_point, 
Graphene.Point end_point, [CCode (array_length_cname = "n_stops", array_length_pos = 4.1, array_length_type = 
"gsize")] Gsk.ColorStop[] stops);
+               public void append_linear_gradient (Graphene.Rect bounds, Graphene.Point start_point, 
Graphene.Point end_point, [CCode (array_length_cname = "n_stops", array_length_pos = 4.1)] 
Gsk.ColorStop[:size_t] stops);
                public void append_node (Gsk.RenderNode node);
                public void append_outset_shadow (Gsk.RoundedRect outline, Gdk.RGBA color, float dx, float 
dy, float spread, float blur_radius);
-               public void append_radial_gradient (Graphene.Rect bounds, Graphene.Point center, float 
hradius, float vradius, float start, float end, [CCode (array_length_cname = "n_stops", array_length_pos = 
7.1, array_length_type = "gsize")] Gsk.ColorStop[] stops);
-               public void append_repeating_linear_gradient (Graphene.Rect bounds, Graphene.Point 
start_point, Graphene.Point end_point, [CCode (array_length_cname = "n_stops", array_length_pos = 4.1, 
array_length_type = "gsize")] Gsk.ColorStop[] stops);
-               public void append_repeating_radial_gradient (Graphene.Rect bounds, Graphene.Point center, 
float hradius, float vradius, float start, float end, [CCode (array_length_cname = "n_stops", 
array_length_pos = 7.1, array_length_type = "gsize")] Gsk.ColorStop[] stops);
+               public void append_radial_gradient (Graphene.Rect bounds, Graphene.Point center, float 
hradius, float vradius, float start, float end, [CCode (array_length_cname = "n_stops", array_length_pos = 
7.1)] Gsk.ColorStop[:size_t] stops);
+               public void append_repeating_linear_gradient (Graphene.Rect bounds, Graphene.Point 
start_point, Graphene.Point end_point, [CCode (array_length_cname = "n_stops", array_length_pos = 4.1)] 
Gsk.ColorStop[:size_t] stops);
+               public void append_repeating_radial_gradient (Graphene.Rect bounds, Graphene.Point center, 
float hradius, float vradius, float start, float end, [CCode (array_length_cname = "n_stops", 
array_length_pos = 7.1)] Gsk.ColorStop[:size_t] stops);
                public void append_texture (Gdk.Texture texture, Graphene.Rect bounds);
                [DestroysInstance]
                public Gsk.RenderNode free_to_node ();
@@ -10771,7 +10771,7 @@ namespace Gtk {
                public void push_opacity (double opacity);
                public void push_repeat (Graphene.Rect bounds, Graphene.Rect? child_bounds);
                public void push_rounded_clip (Gsk.RoundedRect bounds);
-               public void push_shadow ([CCode (array_length_cname = "n_shadows", array_length_pos = 1.1, 
array_length_type = "gsize", type = "const GskShadow*")] Gsk.Shadow[] shadow);
+               public void push_shadow ([CCode (array_length_cname = "n_shadows", array_length_pos = 1.1, 
type = "const GskShadow*")] Gsk.Shadow[:size_t] shadow);
                public void render_background (Gtk.StyleContext context, double x, double y, double width, 
double height);
                public void render_focus (Gtk.StyleContext context, double x, double y, double width, double 
height);
                public void render_frame (Gtk.StyleContext context, double x, double y, double width, double 
height);
@@ -11248,8 +11248,8 @@ namespace Gtk {
                [CCode (has_construct_function = false)]
                public TextChildAnchor ();
                public bool get_deleted ();
-               [CCode (array_length_pos = 0.1, array_length_type = "guint")]
-               public (unowned Gtk.Widget)[] get_widgets ();
+               [CCode (array_length_pos = 0.1)]
+               public (unowned Gtk.Widget)[:uint] get_widgets ();
        }
        [CCode (cheader_filename = "gtk/gtk.h", type_id = "gtk_text_mark_get_type ()")]
        public class TextMark : GLib.Object {
@@ -11706,7 +11706,7 @@ namespace Gtk {
                [CCode (has_construct_function = false, sentinel = "-1")]
                public TreePath.from_indices (...);
                [CCode (has_construct_function = false)]
-               public TreePath.from_indicesv ([CCode (array_length_cname = "length", array_length_pos = 1.1, 
array_length_type = "gsize")] int[] indices);
+               public TreePath.from_indicesv ([CCode (array_length_cname = "length", array_length_pos = 
1.1)] int[:size_t] indices);
                [CCode (has_construct_function = false)]
                public TreePath.from_string (string path);
                public int get_depth ();
@@ -14303,7 +14303,7 @@ namespace Gtk {
        [CCode (cheader_filename = "gtk/gtk.h")]
        public static void disable_setlocale ();
        [CCode (cheader_filename = "gtk/gtk.h")]
-       public static int distribute_natural_allocation (int extra_space, [CCode (array_length_cname = 
"n_requested_sizes", array_length_pos = 1.5, array_length_type = "guint")] Gtk.RequestedSize[] sizes);
+       public static int distribute_natural_allocation (int extra_space, [CCode (array_length_cname = 
"n_requested_sizes", array_length_pos = 1.5)] Gtk.RequestedSize[:uint] sizes);
        [CCode (cheader_filename = "gtk/gtk.h")]
        public static bool drag_check_threshold (Gtk.Widget widget, int start_x, int start_y, int current_x, 
int current_y);
        [CCode (cheader_filename = "gtk/gtk.h")]
@@ -14358,8 +14358,8 @@ namespace Gtk {
        public static bool test_accessible_has_state (Gtk.Accessible accessible, Gtk.AccessibleState state);
        [CCode (cheader_filename = "gtk/gtk.h")]
        public static void test_init ([CCode (array_length_cname = "argcp", array_length_pos = 0.5)] ref 
unowned string[] argvp, ...);
-       [CCode (array_length = true, array_length_pos = 0.1, array_length_type = "guint", 
array_null_terminated = true, cheader_filename = "gtk/gtk.h")]
-       public static unowned GLib.Type[] test_list_all_types ();
+       [CCode (array_length = true, array_length_pos = 0.1, array_null_terminated = true, cheader_filename = 
"gtk/gtk.h")]
+       public static unowned GLib.Type[:uint] test_list_all_types ();
        [CCode (cheader_filename = "gtk/gtk.h")]
        public static void test_register_all_types ();
        [CCode (cheader_filename = "gtk/gtk.h")]
diff --git a/vapi/harfbuzz-gobject.vapi b/vapi/harfbuzz-gobject.vapi
index 7d48fd415..96b9490aa 100644
--- a/vapi/harfbuzz-gobject.vapi
+++ b/vapi/harfbuzz-gobject.vapi
@@ -13,12 +13,12 @@ namespace HarfBuzz {
                public static HarfBuzz.Blob create_from_file (string file_name);
                [Version (since = "0.9.2")]
                public static HarfBuzz.Blob create_sub_blob (HarfBuzz.Blob parent, uint offset, uint length);
-               [CCode (array_length_pos = 1.1, array_length_type = "guint")]
+               [CCode (array_length_pos = 1.1)]
                [Version (since = "0.9.2")]
-               public static unowned string[] get_data (HarfBuzz.Blob blob);
-               [CCode (array_length_pos = 1.1, array_length_type = "guint")]
+               public static unowned string[:uint] get_data (HarfBuzz.Blob blob);
+               [CCode (array_length_pos = 1.1)]
                [Version (since = "0.9.2")]
-               public static unowned string[] get_data_writable (HarfBuzz.Blob blob);
+               public static unowned string[:uint] get_data_writable (HarfBuzz.Blob blob);
                [Version (since = "0.9.2")]
                public static HarfBuzz.Blob get_empty ();
                [Version (since = "0.9.2")]
@@ -68,12 +68,12 @@ namespace HarfBuzz {
                public static HarfBuzz.Buffer get_empty ();
                [Version (since = "0.9.7")]
                public static HarfBuzz.BufferFlags get_flags (HarfBuzz.Buffer buffer);
-               [CCode (array_length_pos = 1.1, array_length_type = "guint")]
+               [CCode (array_length_pos = 1.1)]
                [Version (since = "0.9.2")]
-               public static unowned HarfBuzz.Glyph[] get_glyph_infos (HarfBuzz.Buffer buffer);
-               [CCode (array_length_pos = 1.1, array_length_type = "guint")]
+               public static unowned HarfBuzz.Glyph[:uint] get_glyph_infos (HarfBuzz.Buffer buffer);
+               [CCode (array_length_pos = 1.1)]
                [Version (since = "0.9.2")]
-               public static unowned HarfBuzz.GlyphPosition[] get_glyph_positions (HarfBuzz.Buffer buffer);
+               public static unowned HarfBuzz.GlyphPosition[:uint] get_glyph_positions (HarfBuzz.Buffer 
buffer);
                [Version (since = "2.0.0")]
                public static HarfBuzz.Codepoint get_invisible_glyph (HarfBuzz.Buffer buffer);
                [Version (since = "0.9.2")]
@@ -104,18 +104,18 @@ namespace HarfBuzz {
                [Version (since = "0.9.41")]
                public static void reverse_range (HarfBuzz.Buffer buffer, uint start, uint end);
                [Version (since = "2.7.3")]
-               public static uint serialize (HarfBuzz.Buffer buffer, uint start, uint end, [CCode 
(array_length_cname = "buf_size", array_length_pos = 4.5, array_length_type = "guint")] out uint8[] buf, out 
uint buf_consumed, HarfBuzz.Font? font, HarfBuzz.BufferSerializeFormat format, HarfBuzz.BufferSerializeFlags 
flags);
+               public static uint serialize (HarfBuzz.Buffer buffer, uint start, uint end, [CCode 
(array_length_cname = "buf_size", array_length_pos = 4.5)] out uint8[:uint] buf, out uint buf_consumed, 
HarfBuzz.Font? font, HarfBuzz.BufferSerializeFormat format, HarfBuzz.BufferSerializeFlags flags);
                [Version (since = "0.9.7")]
                public static HarfBuzz.BufferSerializeFormat serialize_format_from_string ([CCode 
(array_length_cname = "len", array_length_pos = 1.1)] uint8[] str);
                [Version (since = "0.9.7")]
                public static unowned string serialize_format_to_string (HarfBuzz.BufferSerializeFormat 
format);
                [Version (since = "0.9.7")]
-               public static uint serialize_glyphs (HarfBuzz.Buffer buffer, uint start, uint end, [CCode 
(array_length_cname = "buf_size", array_length_pos = 4.5, array_length_type = "guint")] out uint8[] buf, out 
uint buf_consumed, HarfBuzz.Font? font, HarfBuzz.BufferSerializeFormat format, HarfBuzz.BufferSerializeFlags 
flags);
+               public static uint serialize_glyphs (HarfBuzz.Buffer buffer, uint start, uint end, [CCode 
(array_length_cname = "buf_size", array_length_pos = 4.5)] out uint8[:uint] buf, out uint buf_consumed, 
HarfBuzz.Font? font, HarfBuzz.BufferSerializeFormat format, HarfBuzz.BufferSerializeFlags flags);
                [CCode (array_length = false, array_null_terminated = true)]
                [Version (since = "0.9.7")]
                public static unowned string[] serialize_list_formats ();
                [Version (since = "2.7.3")]
-               public static uint serialize_unicode (HarfBuzz.Buffer buffer, uint start, uint end, [CCode 
(array_length_cname = "buf_size", array_length_pos = 4.5, array_length_type = "guint")] out uint8[] buf, out 
uint buf_consumed, HarfBuzz.BufferSerializeFormat format, HarfBuzz.BufferSerializeFlags flags);
+               public static uint serialize_unicode (HarfBuzz.Buffer buffer, uint start, uint end, [CCode 
(array_length_cname = "buf_size", array_length_pos = 4.5)] out uint8[:uint] buf, out uint buf_consumed, 
HarfBuzz.BufferSerializeFormat format, HarfBuzz.BufferSerializeFlags flags);
                [Version (since = "0.9.42")]
                public static void set_cluster_level (HarfBuzz.Buffer buffer, HarfBuzz.BufferClusterLevel 
cluster_level);
                [Version (since = "0.9.5")]
@@ -168,7 +168,7 @@ namespace HarfBuzz {
                [Version (since = "0.9.2")]
                public static uint get_index (HarfBuzz.Face face);
                [Version (since = "1.6.0")]
-               public static uint get_table_tags (HarfBuzz.Face face, uint start_offset, [CCode 
(array_length_cname = "table_count", array_length_pos = 2.5, array_length_type = "guint")] out HarfBuzz.Tag[] 
table_tags);
+               public static uint get_table_tags (HarfBuzz.Face face, uint start_offset, [CCode 
(array_length_cname = "table_count", array_length_pos = 2.5)] out HarfBuzz.Tag[:uint] table_tags);
                [Version (since = "0.9.2")]
                public static uint get_upem (HarfBuzz.Face face);
                [Version (since = "0.9.2")]
@@ -196,11 +196,11 @@ namespace HarfBuzz {
                public uint32 value;
                [CCode (cname = "hb_feature_to_string")]
                [Version (since = "0.9.5")]
-               public void _string ([CCode (array_length_cname = "size", array_length_pos = 1.1, 
array_length_type = "guint")] out string[] buf);
+               public void _string ([CCode (array_length_cname = "size", array_length_pos = 1.1)] out 
string[:uint] buf);
                [Version (since = "0.9.5")]
                public static HarfBuzz.Bool from_string ([CCode (array_length_cname = "len", array_length_pos 
= 1.5)] uint8[] str, out unowned HarfBuzz.Feature feature);
                [Version (since = "0.9.5")]
-               public static void to_string (HarfBuzz.Feature feature, [CCode (array_length_cname = "size", 
array_length_pos = 2.1, array_length_type = "guint")] out string[] buf);
+               public static void to_string (HarfBuzz.Feature feature, [CCode (array_length_cname = "size", 
array_length_pos = 2.1)] out string[:uint] buf);
        }
        [CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_t", copy_function = "g_boxed_copy", 
free_function = "g_boxed_free", type_id = "hb_gobject_font_get_type ()")]
        [Compact]
@@ -245,7 +245,7 @@ namespace HarfBuzz {
                [Version (since = "0.9.2")]
                public static void get_glyph_kerning_for_direction (HarfBuzz.Font font, HarfBuzz.Codepoint 
first_glyph, HarfBuzz.Codepoint second_glyph, HarfBuzz.Direction direction, out HarfBuzz.Position x, out 
HarfBuzz.Position y);
                [Version (since = "0.9.2")]
-               public static HarfBuzz.Bool get_glyph_name (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
[CCode (array_length_cname = "size", array_length_pos = 3.1, array_length_type = "guint")] string[] name);
+               public static HarfBuzz.Bool get_glyph_name (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
[CCode (array_length_cname = "size", array_length_pos = 3.1)] string[:uint] name);
                [Version (since = "0.9.2")]
                public static void get_glyph_origin_for_direction (HarfBuzz.Font font, HarfBuzz.Codepoint 
glyph, HarfBuzz.Direction direction, out HarfBuzz.Position x, out HarfBuzz.Position y);
                [Version (since = "0.9.2")]
@@ -279,7 +279,7 @@ namespace HarfBuzz {
                [Version (since = "0.9.2")]
                public static HarfBuzz.Bool glyph_from_string (HarfBuzz.Font font, [CCode (array_length_cname 
= "len", array_length_pos = 2.5)] uint8[] s, out HarfBuzz.Codepoint glyph);
                [Version (since = "0.9.2")]
-               public static void glyph_to_string (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, [CCode 
(array_length_cname = "size", array_length_pos = 3.1, array_length_type = "guint")] string[] s);
+               public static void glyph_to_string (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, [CCode 
(array_length_cname = "size", array_length_pos = 3.1)] string[:uint] s);
                [Version (since = "0.9.2")]
                public static HarfBuzz.Bool is_immutable (HarfBuzz.Font font);
                [Version (since = "0.9.2")]
@@ -504,15 +504,15 @@ namespace HarfBuzz {
        [GIR (name = "shape_plan_t")]
        public class ShapePlan {
                [Version (since = "0.9.7")]
-               public static HarfBuzz.ShapePlan create (HarfBuzz.Face face, HarfBuzz.SegmentProperties 
props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5, array_length_type = 
"guint")] HarfBuzz.Feature[] user_features, [CCode (array_length = false, array_null_terminated = true)] 
string[] shaper_list);
+               public static HarfBuzz.ShapePlan create (HarfBuzz.Face face, HarfBuzz.SegmentProperties 
props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5)] HarfBuzz.Feature[:uint] 
user_features, [CCode (array_length = false, array_null_terminated = true)] string[] shaper_list);
                [Version (since = "1.4.0")]
-               public static HarfBuzz.ShapePlan create2 (HarfBuzz.Face face, HarfBuzz.SegmentProperties 
props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5, array_length_type = 
"guint")] HarfBuzz.Feature[] user_features, [CCode (array_length_cname = "num_coords", array_length_pos = 
4.5, array_length_type = "guint")] int[] coords, [CCode (array_length = false, array_null_terminated = true)] 
string[] shaper_list);
+               public static HarfBuzz.ShapePlan create2 (HarfBuzz.Face face, HarfBuzz.SegmentProperties 
props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5)] HarfBuzz.Feature[:uint] 
user_features, [CCode (array_length_cname = "num_coords", array_length_pos = 4.5)] int[:uint] coords, [CCode 
(array_length = false, array_null_terminated = true)] string[] shaper_list);
                [Version (since = "0.9.7")]
-               public static HarfBuzz.ShapePlan create_cached (HarfBuzz.Face face, 
HarfBuzz.SegmentProperties props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5, 
array_length_type = "guint")] HarfBuzz.Feature[] user_features, [CCode (array_length = false, 
array_null_terminated = true)] string[] shaper_list);
+               public static HarfBuzz.ShapePlan create_cached (HarfBuzz.Face face, 
HarfBuzz.SegmentProperties props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5)] 
HarfBuzz.Feature[:uint] user_features, [CCode (array_length = false, array_null_terminated = true)] string[] 
shaper_list);
                [Version (since = "1.4.0")]
-               public static HarfBuzz.ShapePlan create_cached2 (HarfBuzz.Face face, 
HarfBuzz.SegmentProperties props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5, 
array_length_type = "guint")] HarfBuzz.Feature[] user_features, [CCode (array_length_cname = "num_coords", 
array_length_pos = 4.5, array_length_type = "guint")] int[] coords, [CCode (array_length = false, 
array_null_terminated = true)] string[] shaper_list);
+               public static HarfBuzz.ShapePlan create_cached2 (HarfBuzz.Face face, 
HarfBuzz.SegmentProperties props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5)] 
HarfBuzz.Feature[:uint] user_features, [CCode (array_length_cname = "num_coords", array_length_pos = 4.5)] 
int[:uint] coords, [CCode (array_length = false, array_null_terminated = true)] string[] shaper_list);
                [Version (since = "0.9.7")]
-               public static HarfBuzz.Bool execute (HarfBuzz.ShapePlan shape_plan, HarfBuzz.Font font, 
HarfBuzz.Buffer buffer, [CCode (array_length_cname = "num_features", array_length_pos = 4.1, 
array_length_type = "guint")] HarfBuzz.Feature[] features);
+               public static HarfBuzz.Bool execute (HarfBuzz.ShapePlan shape_plan, HarfBuzz.Font font, 
HarfBuzz.Buffer buffer, [CCode (array_length_cname = "num_features", array_length_pos = 4.1)] 
HarfBuzz.Feature[:uint] features);
                [Version (since = "0.9.7")]
                public static HarfBuzz.ShapePlan get_empty ();
                [Version (since = "0.9.7")]
@@ -1105,7 +1105,7 @@ namespace HarfBuzz {
                USABLE_WITH_LIGHT_BACKGROUND,
                USABLE_WITH_DARK_BACKGROUND;
                public static HarfBuzz.OtNameId color_get_name_id (HarfBuzz.Face face, uint color_index);
-               public static uint get_colors (HarfBuzz.Face face, uint palette_index, uint start_offset, 
[CCode (array_length_cname = "color_count", array_length_pos = 3.5, array_length_type = "guint")] out 
HarfBuzz.Color[]? colors);
+               public static uint get_colors (HarfBuzz.Face face, uint palette_index, uint start_offset, 
[CCode (array_length_cname = "color_count", array_length_pos = 3.5)] out HarfBuzz.Color[:uint]? colors);
                public static uint get_count (HarfBuzz.Face face);
                public static HarfBuzz.OtColorPalette get_flags (HarfBuzz.Face face, uint palette_index);
                public static HarfBuzz.OtNameId get_name_id (HarfBuzz.Face face, uint palette_index);
@@ -1664,7 +1664,7 @@ namespace HarfBuzz {
        public static HarfBuzz.GlyphFlags glyph_info_get_glyph_flags (HarfBuzz.Glyph info);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.1.0")]
-       public static uint ot_color_glyph_get_layers (HarfBuzz.Face face, HarfBuzz.Codepoint glyph, uint 
start_offset, [CCode (array_length_cname = "layer_count", array_length_pos = 3.5, array_length_type = 
"guint")] out unowned HarfBuzz.OtColorLayer[]? layers);
+       public static uint ot_color_glyph_get_layers (HarfBuzz.Face face, HarfBuzz.Codepoint glyph, uint 
start_offset, [CCode (array_length_cname = "layer_count", array_length_pos = 3.5)] out unowned 
HarfBuzz.OtColorLayer[:uint]? layers);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.1.0")]
        public static HarfBuzz.Blob ot_color_glyph_reference_png (HarfBuzz.Font font, HarfBuzz.Codepoint 
glyph);
@@ -1694,17 +1694,17 @@ namespace HarfBuzz {
        public static void ot_layout_collect_lookups (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
HarfBuzz.Tag scripts, HarfBuzz.Tag languages, HarfBuzz.Tag features, out unowned HarfBuzz.Set lookup_indexes);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.0.0")]
-       public static uint ot_layout_feature_get_characters (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
feature_index, uint start_offset, [CCode (array_length_cname = "char_count", array_length_pos = 4.5, 
array_length_type = "guint")] out unowned HarfBuzz.Codepoint[] characters);
+       public static uint ot_layout_feature_get_characters (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
feature_index, uint start_offset, [CCode (array_length_cname = "char_count", array_length_pos = 4.5)] out 
unowned HarfBuzz.Codepoint[:uint] characters);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "0.9.7")]
-       public static uint ot_layout_feature_get_lookups (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
feature_index, uint start_offset, [CCode (array_length_cname = "lookup_count", array_length_pos = 4.5, 
array_length_type = "guint")] out uint[] lookup_indexes);
+       public static uint ot_layout_feature_get_lookups (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
feature_index, uint start_offset, [CCode (array_length_cname = "lookup_count", array_length_pos = 4.5)] out 
uint[:uint] lookup_indexes);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.0.0")]
        public static HarfBuzz.Bool ot_layout_feature_get_name_ids (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint feature_index, out HarfBuzz.OtNameId label_id, out HarfBuzz.OtNameId tooltip_id, out 
HarfBuzz.OtNameId sample_id, out uint num_named_parameters, out HarfBuzz.OtNameId first_param_id);
        [CCode (cheader_filename = "hb-gobject.h")]
-       public static uint ot_layout_feature_with_variations_get_lookups (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint feature_index, uint variations_index, uint start_offset, [CCode (array_length_cname = 
"lookup_count", array_length_pos = 5.5, array_length_type = "guint")] out uint[] lookup_indexes);
+       public static uint ot_layout_feature_with_variations_get_lookups (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint feature_index, uint variations_index, uint start_offset, [CCode (array_length_cname = 
"lookup_count", array_length_pos = 5.5)] out uint[:uint] lookup_indexes);
        [CCode (cheader_filename = "hb-gobject.h")]
-       public static uint ot_layout_get_attach_points (HarfBuzz.Face face, HarfBuzz.Codepoint glyph, uint 
start_offset, [CCode (array_length_cname = "point_count", array_length_pos = 3.5, array_length_type = 
"guint")] out uint[] point_array);
+       public static uint ot_layout_get_attach_points (HarfBuzz.Face face, HarfBuzz.Codepoint glyph, uint 
start_offset, [CCode (array_length_cname = "point_count", array_length_pos = 3.5)] out uint[:uint] 
point_array);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.6.0")]
        public static HarfBuzz.Bool ot_layout_get_baseline (HarfBuzz.Font font, HarfBuzz.OtLayoutBaselineTag 
baseline_tag, HarfBuzz.Direction direction, HarfBuzz.Tag script_tag, HarfBuzz.Tag language_tag, out 
HarfBuzz.Position coord);
@@ -1715,7 +1715,7 @@ namespace HarfBuzz {
        [Version (since = "0.9.7")]
        public static void ot_layout_get_glyphs_in_class (HarfBuzz.Face face, HarfBuzz.OtLayoutGlyphClass 
klass, out unowned HarfBuzz.Set glyphs);
        [CCode (cheader_filename = "hb-gobject.h")]
-       public static uint ot_layout_get_ligature_carets (HarfBuzz.Font font, HarfBuzz.Direction direction, 
HarfBuzz.Codepoint glyph, uint start_offset, [CCode (array_length_cname = "caret_count", array_length_pos = 
4.5, array_length_type = "guint")] out HarfBuzz.Position[] caret_array);
+       public static uint ot_layout_get_ligature_carets (HarfBuzz.Font font, HarfBuzz.Direction direction, 
HarfBuzz.Codepoint glyph, uint start_offset, [CCode (array_length_cname = "caret_count", array_length_pos = 
4.5)] out HarfBuzz.Position[:uint] caret_array);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "0.9.10")]
        public static HarfBuzz.Bool ot_layout_get_size_params (HarfBuzz.Face face, out uint design_size, out 
uint subfamily_id, out HarfBuzz.OtNameId subfamily_name_id, out uint range_start, out uint range_end);
@@ -1728,9 +1728,9 @@ namespace HarfBuzz {
        [CCode (cheader_filename = "hb-gobject.h")]
        public static HarfBuzz.Bool ot_layout_language_find_feature (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_index, uint language_index, HarfBuzz.Tag feature_tag, out uint feature_index);
        [CCode (cheader_filename = "hb-gobject.h")]
-       public static uint ot_layout_language_get_feature_indexes (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_index, uint language_index, uint start_offset, [CCode (array_length_cname = 
"feature_count", array_length_pos = 5.5, array_length_type = "guint")] out uint[] feature_indexes);
+       public static uint ot_layout_language_get_feature_indexes (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_index, uint language_index, uint start_offset, [CCode (array_length_cname = 
"feature_count", array_length_pos = 5.5)] out uint[:uint] feature_indexes);
        [CCode (cheader_filename = "hb-gobject.h")]
-       public static uint ot_layout_language_get_feature_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
uint script_index, uint language_index, uint start_offset, [CCode (array_length_cname = "feature_count", 
array_length_pos = 5.5, array_length_type = "guint")] out HarfBuzz.Tag[] feature_tags);
+       public static uint ot_layout_language_get_feature_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
uint script_index, uint language_index, uint start_offset, [CCode (array_length_cname = "feature_count", 
array_length_pos = 5.5)] out HarfBuzz.Tag[:uint] feature_tags);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "0.9.30")]
        public static HarfBuzz.Bool ot_layout_language_get_required_feature (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_index, uint language_index, out uint feature_index, out HarfBuzz.Tag feature_tag);
@@ -1741,7 +1741,7 @@ namespace HarfBuzz {
        public static void ot_layout_lookup_collect_glyphs (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
lookup_index, out unowned HarfBuzz.Set glyphs_before, out unowned HarfBuzz.Set glyphs_input, out unowned 
HarfBuzz.Set glyphs_after, out unowned HarfBuzz.Set glyphs_output);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.6.8")]
-       public static uint ot_layout_lookup_get_glyph_alternates (HarfBuzz.Face face, uint lookup_index, 
HarfBuzz.Codepoint glyph, uint start_offset, [CCode (array_length_cname = "alternate_count", array_length_pos 
= 4.5, array_length_type = "guint")] out unowned HarfBuzz.Codepoint[] alternate_glyphs);
+       public static uint ot_layout_lookup_get_glyph_alternates (HarfBuzz.Face face, uint lookup_index, 
HarfBuzz.Codepoint glyph, uint start_offset, [CCode (array_length_cname = "alternate_count", array_length_pos 
= 4.5)] out unowned HarfBuzz.Codepoint[:uint] alternate_glyphs);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "0.9.7")]
        public static void ot_layout_lookup_substitute_closure (HarfBuzz.Face face, uint lookup_index, out 
unowned HarfBuzz.Set glyphs);
@@ -1755,7 +1755,7 @@ namespace HarfBuzz {
        [Version (deprecated = true)]
        public static HarfBuzz.Bool ot_layout_script_find_language (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_index, HarfBuzz.Tag language_tag, uint language_index);
        [CCode (cheader_filename = "hb-gobject.h")]
-       public static uint ot_layout_script_get_language_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
uint script_index, uint start_offset, [CCode (array_length_cname = "language_count", array_length_pos = 4.5, 
array_length_type = "guint")] out HarfBuzz.Tag[] language_tags);
+       public static uint ot_layout_script_get_language_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
uint script_index, uint start_offset, [CCode (array_length_cname = "language_count", array_length_pos = 4.5)] 
out HarfBuzz.Tag[:uint] language_tags);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.0.0")]
        public static HarfBuzz.Bool ot_layout_script_select_language (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_index, uint language_count, HarfBuzz.Tag language_tags, out uint language_index);
@@ -1766,12 +1766,12 @@ namespace HarfBuzz {
        [CCode (cheader_filename = "hb-gobject.h")]
        public static HarfBuzz.Bool ot_layout_table_find_script (HarfBuzz.Face face, HarfBuzz.Tag table_tag, 
HarfBuzz.Tag script_tag, out uint script_index);
        [CCode (cheader_filename = "hb-gobject.h")]
-       public static uint ot_layout_table_get_feature_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
start_offset, [CCode (array_length_cname = "feature_count", array_length_pos = 3.5, array_length_type = 
"guint")] out HarfBuzz.Tag[] feature_tags);
+       public static uint ot_layout_table_get_feature_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
start_offset, [CCode (array_length_cname = "feature_count", array_length_pos = 3.5)] out HarfBuzz.Tag[:uint] 
feature_tags);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "0.9.22")]
        public static uint ot_layout_table_get_lookup_count (HarfBuzz.Face face, HarfBuzz.Tag table_tag);
        [CCode (cheader_filename = "hb-gobject.h")]
-       public static uint ot_layout_table_get_script_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
start_offset, [CCode (array_length_cname = "script_count", array_length_pos = 3.5, array_length_type = 
"guint")] out HarfBuzz.Tag[] script_tags);
+       public static uint ot_layout_table_get_script_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint 
start_offset, [CCode (array_length_cname = "script_count", array_length_pos = 3.5)] out HarfBuzz.Tag[:uint] 
script_tags);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.0.0")]
        public static HarfBuzz.Bool ot_layout_table_select_script (HarfBuzz.Face face, HarfBuzz.Tag 
table_tag, uint script_count, HarfBuzz.Tag script_tags, out uint script_index, out HarfBuzz.Tag 
chosen_script);
@@ -1780,7 +1780,7 @@ namespace HarfBuzz {
        public static HarfBuzz.Position ot_math_get_constant (HarfBuzz.Font font, HarfBuzz.OtMathContant 
constant);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "1.3.3")]
-       public static uint ot_math_get_glyph_assembly (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
HarfBuzz.Direction direction, uint start_offset, [CCode (array_length_cname = "parts_count", array_length_pos 
= 4.5, array_length_type = "guint")] out unowned HarfBuzz.OtMathGlypthPart[] parts, out HarfBuzz.Position 
italics_correction);
+       public static uint ot_math_get_glyph_assembly (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
HarfBuzz.Direction direction, uint start_offset, [CCode (array_length_cname = "parts_count", array_length_pos 
= 4.5)] out unowned HarfBuzz.OtMathGlypthPart[:uint] parts, out HarfBuzz.Position italics_correction);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "1.3.3")]
        public static HarfBuzz.Position ot_math_get_glyph_italics_correction (HarfBuzz.Font font, 
HarfBuzz.Codepoint glyph);
@@ -1792,7 +1792,7 @@ namespace HarfBuzz {
        public static HarfBuzz.Position ot_math_get_glyph_top_accent_attachment (HarfBuzz.Font font, 
HarfBuzz.Codepoint glyph);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "1.3.3")]
-       public static uint ot_math_get_glyph_variants (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
HarfBuzz.Direction direction, uint start_offset, [CCode (array_length_cname = "variants_count", 
array_length_pos = 4.5, array_length_type = "guint")] out unowned HarfBuzz.OtMathGlypthVariant[] variants);
+       public static uint ot_math_get_glyph_variants (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, 
HarfBuzz.Direction direction, uint start_offset, [CCode (array_length_cname = "variants_count", 
array_length_pos = 4.5)] out unowned HarfBuzz.OtMathGlypthVariant[:uint] variants);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "1.3.3")]
        public static HarfBuzz.Position ot_math_get_min_connector_overlap (HarfBuzz.Font font, 
HarfBuzz.Direction direction);
@@ -1804,7 +1804,7 @@ namespace HarfBuzz {
        public static HarfBuzz.Bool ot_math_is_glyph_extended_shape (HarfBuzz.Face face, HarfBuzz.Codepoint 
glyph);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.6.0")]
-       public static uint ot_meta_get_entry_tags (HarfBuzz.Face face, uint start_offset, [CCode 
(array_length_cname = "entries_count", array_length_pos = 2.5, array_length_type = "guint")] out unowned 
HarfBuzz.OtMetaTag[] entries);
+       public static uint ot_meta_get_entry_tags (HarfBuzz.Face face, uint start_offset, [CCode 
(array_length_cname = "entries_count", array_length_pos = 2.5)] out unowned HarfBuzz.OtMetaTag[:uint] 
entries);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.6.0")]
        public static HarfBuzz.Blob ot_meta_reference_entry (HarfBuzz.Face face, HarfBuzz.OtMetaTag meta_tag);
@@ -1822,19 +1822,19 @@ namespace HarfBuzz {
        public static HarfBuzz.Position ot_metrics_get_y_variation (HarfBuzz.Font font, HarfBuzz.OtMetricsTag 
metrics_tag);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.1.0")]
-       public static uint ot_name_get_utf16 (HarfBuzz.Face face, HarfBuzz.OtNameId name_id, 
HarfBuzz.Language language, [CCode (array_length_cname = "text_size", array_length_pos = 3.5, 
array_length_type = "guint")] out unowned uint16[] text);
+       public static uint ot_name_get_utf16 (HarfBuzz.Face face, HarfBuzz.OtNameId name_id, 
HarfBuzz.Language language, [CCode (array_length_cname = "text_size", array_length_pos = 3.5)] out unowned 
uint16[:uint] text);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.1.0")]
-       public static uint ot_name_get_utf32 (HarfBuzz.Face face, HarfBuzz.OtNameId name_id, 
HarfBuzz.Language language, [CCode (array_length_cname = "text_size", array_length_pos = 3.5, 
array_length_type = "guint")] out unowned uint32[] text);
+       public static uint ot_name_get_utf32 (HarfBuzz.Face face, HarfBuzz.OtNameId name_id, 
HarfBuzz.Language language, [CCode (array_length_cname = "text_size", array_length_pos = 3.5)] out unowned 
uint32[:uint] text);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.1.0")]
-       public static uint ot_name_get_utf8 (HarfBuzz.Face face, HarfBuzz.OtNameId name_id, HarfBuzz.Language 
language, [CCode (array_length_cname = "text_size", array_length_pos = 3.5, array_length_type = "guint")] out 
unowned string[] text);
-       [CCode (array_length_pos = 1.1, array_length_type = "guint", cheader_filename = "hb-gobject.h")]
+       public static uint ot_name_get_utf8 (HarfBuzz.Face face, HarfBuzz.OtNameId name_id, HarfBuzz.Language 
language, [CCode (array_length_cname = "text_size", array_length_pos = 3.5)] out unowned string[:uint] text);
+       [CCode (array_length_pos = 1.1, cheader_filename = "hb-gobject.h")]
        [Version (since = "2.1.0")]
-       public static unowned HarfBuzz.OtNameEntry[] ot_name_list_names (HarfBuzz.Face face);
+       public static unowned HarfBuzz.OtNameEntry[:uint] ot_name_list_names (HarfBuzz.Face face);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "0.9.2")]
-       public static void ot_shape_glyphs_closure (HarfBuzz.Font font, HarfBuzz.Buffer buffer, [CCode 
(array_length_cname = "num_features", array_length_pos = 3.5, array_length_type = "guint")] 
HarfBuzz.Feature[] features, out unowned HarfBuzz.Set glyphs);
+       public static void ot_shape_glyphs_closure (HarfBuzz.Font font, HarfBuzz.Buffer buffer, [CCode 
(array_length_cname = "num_features", array_length_pos = 3.5)] HarfBuzz.Feature[:uint] features, out unowned 
HarfBuzz.Set glyphs);
        [CCode (cheader_filename = "hb-gobject.h")]
        public static HarfBuzz.Tag ot_tag_from_language (HarfBuzz.Language language);
        [CCode (cheader_filename = "hb-gobject.h")]
@@ -1858,13 +1858,13 @@ namespace HarfBuzz {
        public static HarfBuzz.Bool ot_var_find_axis_info (HarfBuzz.Face face, HarfBuzz.Tag axis_tag, out 
HarfBuzz.OtVarAxisInfo axis_info);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (deprecated = true, deprecated_since = "2.2.0", since = "1.4.2")]
-       public static uint ot_var_get_axes (HarfBuzz.Face face, uint start_offset, [CCode (array_length_cname 
= "axes_count", array_length_pos = 2.5, array_length_type = "guint")] out unowned HarfBuzz.OtVarAxis[] 
axes_array);
+       public static uint ot_var_get_axes (HarfBuzz.Face face, uint start_offset, [CCode (array_length_cname 
= "axes_count", array_length_pos = 2.5)] out unowned HarfBuzz.OtVarAxis[:uint] axes_array);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "1.4.2")]
        public static uint ot_var_get_axis_count (HarfBuzz.Face face);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.2.0")]
-       public static uint ot_var_get_axis_infos (HarfBuzz.Face face, uint start_offset, [CCode 
(array_length_cname = "axes_count", array_length_pos = 2.5, array_length_type = "guint")] out unowned 
HarfBuzz.OtVarAxisInfo[] axes_array);
+       public static uint ot_var_get_axis_infos (HarfBuzz.Face face, uint start_offset, [CCode 
(array_length_cname = "axes_count", array_length_pos = 2.5)] out unowned HarfBuzz.OtVarAxisInfo[:uint] 
axes_array);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.2.0")]
        public static uint ot_var_get_named_instance_count (HarfBuzz.Face face);
@@ -1873,7 +1873,7 @@ namespace HarfBuzz {
        public static HarfBuzz.Bool ot_var_has_data (HarfBuzz.Face face);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.2.0")]
-       public static uint ot_var_named_instance_get_design_coords (HarfBuzz.Face face, uint instance_index, 
[CCode (array_length_cname = "coords_length", array_length_pos = 2.5, array_length_type = "guint")] out 
float[] coords);
+       public static uint ot_var_named_instance_get_design_coords (HarfBuzz.Face face, uint instance_index, 
[CCode (array_length_cname = "coords_length", array_length_pos = 2.5)] out float[:uint] coords);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "2.2.0")]
        public static HarfBuzz.OtNameId ot_var_named_instance_get_postscript_name_id (HarfBuzz.Face face, 
uint instance_index);
@@ -1885,13 +1885,13 @@ namespace HarfBuzz {
        public static void ot_var_normalize_coords (HarfBuzz.Face face, uint coords_length, float 
design_coords, out int normalized_coords);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "1.4.2")]
-       public static void ot_var_normalize_variations (HarfBuzz.Face face, HarfBuzz.Variation variations, 
uint variations_length, [CCode (array_length_cname = "coords_length", array_length_pos = 4.1, 
array_length_type = "guint")] out int[] coords);
+       public static void ot_var_normalize_variations (HarfBuzz.Face face, HarfBuzz.Variation variations, 
uint variations_length, [CCode (array_length_cname = "coords_length", array_length_pos = 4.1)] out int[:uint] 
coords);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "0.9.2")]
-       public static void shape (HarfBuzz.Font font, HarfBuzz.Buffer buffer, [CCode (array_length_cname = 
"num_features", array_length_pos = 3.1, array_length_type = "guint")] HarfBuzz.Feature[]? features);
+       public static void shape (HarfBuzz.Font font, HarfBuzz.Buffer buffer, [CCode (array_length_cname = 
"num_features", array_length_pos = 3.1)] HarfBuzz.Feature[:uint]? features);
        [CCode (cheader_filename = "hb-gobject.h")]
        [Version (since = "0.9.2")]
-       public static HarfBuzz.Bool shape_full (HarfBuzz.Font font, HarfBuzz.Buffer buffer, [CCode 
(array_length_cname = "num_features", array_length_pos = 3.5, array_length_type = "guint")] 
HarfBuzz.Feature[]? features, [CCode (array_length = false, array_null_terminated = true)] string[]? 
shaper_list);
+       public static HarfBuzz.Bool shape_full (HarfBuzz.Font font, HarfBuzz.Buffer buffer, [CCode 
(array_length_cname = "num_features", array_length_pos = 3.5)] HarfBuzz.Feature[:uint]? features, [CCode 
(array_length = false, array_null_terminated = true)] string[]? shaper_list);
        [CCode (array_length = false, array_null_terminated = true, cheader_filename = "hb-gobject.h")]
        [Version (since = "0.9.2")]
        public static unowned string[] shape_list_shapers ();
diff --git a/vapi/javascriptcoregtk-4.0.vapi b/vapi/javascriptcoregtk-4.0.vapi
index 2ae2a78dc..e3e858dcd 100644
--- a/vapi/javascriptcoregtk-4.0.vapi
+++ b/vapi/javascriptcoregtk-4.0.vapi
@@ -279,15 +279,15 @@ namespace JSC {
                public Value.array_from_strv (JSC.Context context, [CCode (array_length = false, 
array_null_terminated = true)] global::string[] strv);
                [CCode (has_construct_function = false)]
                public Value.boolean (JSC.Context context, bool value);
-               public JSC.Value constructor_callv ([CCode (array_length_cname = "n_parameters", 
array_length_pos = 0.5, array_length_type = "guint")] JSC.Value[]? parameters);
+               public JSC.Value constructor_callv ([CCode (array_length_cname = "n_parameters", 
array_length_pos = 0.5)] JSC.Value[:uint]? parameters);
                [CCode (has_construct_function = false)]
                [Version (since = "2.28")]
                public Value.from_json (JSC.Context context, global::string json);
-               public JSC.Value function_callv ([CCode (array_length_cname = "n_parameters", 
array_length_pos = 0.5, array_length_type = "guint")] JSC.Value[]? parameters);
+               public JSC.Value function_callv ([CCode (array_length_cname = "n_parameters", 
array_length_pos = 0.5)] JSC.Value[:uint]? parameters);
                [CCode (has_construct_function = false)]
                public Value.function_variadic (JSC.Context context, global::string? name, GLib.Callback 
callback, void* user_data, GLib.DestroyNotify? destroy_notify, GLib.Type return_type);
                [CCode (has_construct_function = false)]
-               public Value.functionv (JSC.Context context, global::string? name, GLib.Callback callback, 
void* user_data, GLib.DestroyNotify? destroy_notify, GLib.Type return_type, [CCode (array_length_cname = 
"n_parameters", array_length_pos = 6.5, array_length_type = "guint")] GLib.Type[]? parameter_types);
+               public Value.functionv (JSC.Context context, global::string? name, GLib.Callback callback, 
void* user_data, GLib.DestroyNotify? destroy_notify, GLib.Type return_type, [CCode (array_length_cname = 
"n_parameters", array_length_pos = 6.5)] GLib.Type[:uint]? parameter_types);
                public unowned JSC.Context get_context ();
                public bool is_array ();
                public bool is_boolean ();
@@ -312,7 +312,7 @@ namespace JSC {
                public JSC.Value object_get_property (global::string name);
                public JSC.Value object_get_property_at_index (uint index);
                public bool object_has_property (global::string name);
-               public JSC.Value object_invoke_methodv (global::string name, [CCode (array_length_cname = 
"n_parameters", array_length_pos = 1.5, array_length_type = "guint")] JSC.Value[]? parameters);
+               public JSC.Value object_invoke_methodv (global::string name, [CCode (array_length_cname = 
"n_parameters", array_length_pos = 1.5)] JSC.Value[:uint]? parameters);
                public bool object_is_instance_of (global::string name);
                public void object_set_property (global::string name, JSC.Value property);
                public void object_set_property_at_index (uint index, JSC.Value property);
diff --git a/vapi/json-glib-1.0.vapi b/vapi/json-glib-1.0.vapi
index 193688040..06ee76349 100644
--- a/vapi/json-glib-1.0.vapi
+++ b/vapi/json-glib-1.0.vapi
@@ -328,9 +328,9 @@ namespace Json {
                public virtual unowned GLib.ParamSpec? find_property (string name);
                [Version (since = "0.14")]
                public virtual GLib.Value get_property (GLib.ParamSpec pspec);
-               [CCode (array_length_pos = 0.1, array_length_type = "guint")]
+               [CCode (array_length_pos = 0.1)]
                [Version (since = "0.14")]
-               public virtual (unowned GLib.ParamSpec)[] list_properties ();
+               public virtual (unowned GLib.ParamSpec)[:uint] list_properties ();
                public virtual Json.Node serialize_property (string property_name, GLib.Value value, 
GLib.ParamSpec pspec);
                [Version (since = "0.14")]
                public virtual void set_property (GLib.ParamSpec pspec, GLib.Value value);
diff --git a/vapi/libgsf-1.vapi b/vapi/libgsf-1.vapi
index cc630983f..536e87731 100644
--- a/vapi/libgsf-1.vapi
+++ b/vapi/libgsf-1.vapi
@@ -5,7 +5,7 @@ namespace Gsf {
        [CCode (cheader_filename = "gsf/gsf.h", type_id = "gsf_blob_get_type ()")]
        public class Blob : GLib.Object {
                [CCode (has_construct_function = false)]
-               public Blob ([CCode (array_length_cname = "size", array_length_pos = 0.5, array_length_type = 
"gsize")] uint8[] data_to_copy) throws GLib.Error;
+               public Blob ([CCode (array_length_cname = "size", array_length_pos = 0.5)] uint8[:size_t] 
data_to_copy) throws GLib.Error;
                public size_t get_size ();
                public void* peek_data ();
        }
@@ -125,8 +125,8 @@ namespace Gsf {
                public Input.mmap_new (string filename) throws GLib.Error;
                [CCode (array_length = false, vfunc_name = "Read")]
                public virtual unowned uint8[]? read (size_t num_bytes, [CCode (array_length = false)] 
uint8[]? optional_buffer);
-               [CCode (array_length_pos = 1.1, array_length_type = "gsize")]
-               public uint8[] read0 (size_t num_bytes);
+               [CCode (array_length_pos = 1.1)]
+               public uint8[:size_t] read0 (size_t num_bytes);
                [CCode (vfunc_name = "Seek")]
                public virtual bool seek (Gsf.off_t offset, GLib.SeekType whence);
                public bool seek_emulate (Gsf.off_t pos);
@@ -187,9 +187,9 @@ namespace Gsf {
        [CCode (cheader_filename = "gsf/gsf.h", type_id = "gsf_input_memory_get_type ()")]
        public class InputMemory : Gsf.Input {
                [CCode (has_construct_function = false, type = "GsfInput*")]
-               public InputMemory ([CCode (array_length_cname = "length", array_length_pos = 1.5)] uint8[] 
buf, bool needs_free);
+               public InputMemory ([CCode (array_length_cname = "length", array_length_pos = 1.5)] 
uint8[:Gsf.off_t] buf, bool needs_free);
                [CCode (has_construct_function = false, type = "GsfInput*")]
-               public InputMemory.clone ([CCode (array_length_cname = "length", array_length_pos = 1.1)] 
uint8[] buf);
+               public InputMemory.clone ([CCode (array_length_cname = "length", array_length_pos = 1.1)] 
uint8[:Gsf.off_t] buf);
                [CCode (has_construct_function = false, type = "GsfInput*")]
                public InputMemory.from_bzip (Gsf.Input source) throws GLib.Error;
                [CCode (has_construct_function = false, type = "GsfInput*")]
@@ -337,7 +337,7 @@ namespace Gsf {
                public virtual Gsf.off_t vprintf (string format, va_list args);
                public static bool wrap (GLib.Object wrapper, Gsf.Output wrapee);
                [CCode (vfunc_name = "Write")]
-               public virtual bool write ([CCode (array_length_cname = "num_bytes", array_length_pos = 0.5, 
array_length_type = "gsize")] uint8[] data);
+               public virtual bool write ([CCode (array_length_cname = "num_bytes", array_length_pos = 0.5)] 
uint8[:size_t] data);
                [NoAccessorMethod]
                public Gsf.Outfile container { owned get; set; }
                [NoAccessorMethod]
@@ -539,7 +539,7 @@ namespace Gsf {
                public weak Gsf.Output output;
                [CCode (has_construct_function = false)]
                public XMLOut (Gsf.Output output);
-               public void add_base64 (string? id, [CCode (array_length_cname = "len", array_length_pos = 
2.1, array_length_type = "guint")] uint8[] data);
+               public void add_base64 (string? id, [CCode (array_length_cname = "len", array_length_pos = 
2.1)] uint8[:uint] data);
                public void add_bool (string? id, bool val);
                public void add_color (string? id, uint r, uint g, uint b);
                public void add_cstr (string? id, string? val_utf8);
@@ -742,7 +742,7 @@ namespace Gsf {
        [CCode (cheader_filename = "gsf/gsf.h")]
        public static size_t base64_decode_step ([CCode (array_length = false)] uint8[] @in, size_t len, 
[CCode (array_length = false)] uint8[] @out, ref int state, ref uint save);
        [CCode (cheader_filename = "gsf/gsf.h")]
-       public static size_t base64_encode_close ([CCode (array_length_cname = "inlen", array_length_pos = 
1.5, array_length_type = "gsize")] uint8[] @in, bool break_lines, [CCode (array_length = false)] uint8[] 
@out, ref int state, ref uint save);
+       public static size_t base64_encode_close ([CCode (array_length_cname = "inlen", array_length_pos = 
1.5)] uint8[:size_t] @in, bool break_lines, [CCode (array_length = false)] uint8[] @out, ref int state, ref 
uint save);
        [CCode (cheader_filename = "gsf/gsf.h")]
        public static uint8 base64_encode_simple ([CCode (array_length = false)] uint8[] data, size_t len);
        [CCode (cheader_filename = "gsf/gsf.h")]
@@ -807,9 +807,9 @@ namespace Gsf {
        [CCode (cheader_filename = "gsf/gsf.h")]
        public static GLib.Error open_pkg_parse_rel_by_id (Gsf.XMLIn xin, string id, Gsf.XMLInNode dtd, 
Gsf.XMLInNS ns);
        [CCode (cheader_filename = "gsf/gsf.h")]
-       public static unowned GLib.Parameter? property_settings_find (string name, [CCode (array_length_cname 
= "n_params", array_length_pos = 2.1, array_length_type = "gsize")] GLib.Parameter[] @params);
+       public static unowned GLib.Parameter? property_settings_find (string name, [CCode (array_length_cname 
= "n_params", array_length_pos = 2.1)] GLib.Parameter[:size_t] @params);
        [CCode (cheader_filename = "gsf/gsf.h")]
-       public static void property_settings_free ([CCode (array_length_cname = "n_params", array_length_pos 
= 1.1, array_length_type = "gsize")] owned GLib.Parameter[] @params);
+       public static void property_settings_free ([CCode (array_length_cname = "n_params", array_length_pos 
= 1.1)] owned GLib.Parameter[:size_t] @params);
        [CCode (cheader_filename = "gsf/gsf.h")]
        public static void shutdown ();
        [CCode (cheader_filename = "gsf/gsf.h")]
diff --git a/vapi/libnotify.vapi b/vapi/libnotify.vapi
index ca82298e6..b9e15f539 100644
--- a/vapi/libnotify.vapi
+++ b/vapi/libnotify.vapi
@@ -19,7 +19,7 @@ namespace Notify {
                [Version (deprecated = true, deprecated_since = "0.6.")]
                public void set_hint_byte (string key, [CCode (type = "guchar")] uchar value);
                [Version (deprecated = true, deprecated_since = "0.6.")]
-               public void set_hint_byte_array (string key, [CCode (array_length_cname = "len", 
array_length_pos = 2.1, array_length_type = "gsize")] uchar[] value);
+               public void set_hint_byte_array (string key, [CCode (array_length_cname = "len", 
array_length_pos = 2.1)] uchar[:size_t] value);
                [Version (deprecated = true, deprecated_since = "0.6.")]
                public void set_hint_double (string key, double value);
                [Version (deprecated = true, deprecated_since = "0.6.")]
diff --git a/vapi/libpeas-1.0.vapi b/vapi/libpeas-1.0.vapi
index 75f659813..3ee140890 100644
--- a/vapi/libpeas-1.0.vapi
+++ b/vapi/libpeas-1.0.vapi
@@ -9,8 +9,8 @@ namespace Peas {
                public void add_search_path (string module_dir, string? data_dir);
                public Peas.Extension create_extension (Peas.PluginInfo info, GLib.Type extension_type, ...);
                [Version (since = "1.24")]
-               public Peas.Extension create_extension_with_properties (Peas.PluginInfo info, GLib.Type 
extension_type, [CCode (array_length_cname = "n_properties", array_length_pos = 2.5, array_length_type = 
"guint")] string[] prop_names, [CCode (array_length_cname = "n_properties", array_length_pos = 2.5, 
array_length_type = "guint")] GLib.Value[] prop_values);
-               public Peas.Extension create_extensionv (Peas.PluginInfo info, GLib.Type extension_type, 
[CCode (array_length_cname = "n_parameters", array_length_pos = 2.5, array_length_type = "guint")] 
GLib.Parameter[]? parameters);
+               public Peas.Extension create_extension_with_properties (Peas.PluginInfo info, GLib.Type 
extension_type, [CCode (array_length_cname = "n_properties", array_length_pos = 2.5)] string[:uint] 
prop_names, [CCode (array_length_cname = "n_properties", array_length_pos = 2.5)] GLib.Value[:uint] 
prop_values);
+               public Peas.Extension create_extensionv (Peas.PluginInfo info, GLib.Type extension_type, 
[CCode (array_length_cname = "n_parameters", array_length_pos = 2.5)] GLib.Parameter[:uint]? parameters);
                public void enable_loader (string loader_name);
                public void garbage_collect ();
                public static unowned Peas.Engine get_default ();
@@ -63,9 +63,9 @@ namespace Peas {
                public void @foreach (Peas.ExtensionSetForeachFunc func);
                public unowned Peas.Extension get_extension (Peas.PluginInfo info);
                [CCode (cname = "peas_extension_set_newv", has_construct_function = false)]
-               public ExtensionSet.newv (Peas.Engine? engine, GLib.Type exten_type, [CCode 
(array_length_cname = "n_parameters", array_length_pos = 2.5, array_length_type = "guint")] GLib.Parameter[] 
parameters);
+               public ExtensionSet.newv (Peas.Engine? engine, GLib.Type exten_type, [CCode 
(array_length_cname = "n_parameters", array_length_pos = 2.5)] GLib.Parameter[:uint] parameters);
                [CCode (has_construct_function = false)]
-               public ExtensionSet.with_properties (Peas.Engine? engine, GLib.Type exten_type, [CCode 
(array_length_cname = "n_properties", array_length_pos = 2.5, array_length_type = "guint")] string[] 
prop_names, [CCode (array_length_cname = "n_properties", array_length_pos = 2.5, array_length_type = 
"guint")] GLib.Value[] prop_values);
+               public ExtensionSet.with_properties (Peas.Engine? engine, GLib.Type exten_type, [CCode 
(array_length_cname = "n_properties", array_length_pos = 2.5)] string[:uint] prop_names, [CCode 
(array_length_cname = "n_properties", array_length_pos = 2.5)] GLib.Value[:uint] prop_values);
                [NoAccessorMethod]
                public void* construct_properties { construct; }
                [NoAccessorMethod]
@@ -139,7 +139,7 @@ namespace Peas {
        [Version (since = "1.2")]
        public delegate void ExtensionSetForeachFunc (Peas.ExtensionSet @set, Peas.PluginInfo info, 
Peas.Extension exten);
        [CCode (cheader_filename = "libpeas/peas.h", instance_pos = 1.9)]
-       public delegate GLib.Object FactoryFunc ([CCode (array_length_cname = "n_parameters", 
array_length_pos = 0.5, array_length_type = "guint")] GLib.Parameter[] parameters);
+       public delegate GLib.Object FactoryFunc ([CCode (array_length_cname = "n_parameters", 
array_length_pos = 0.5)] GLib.Parameter[:uint] parameters);
        [CCode (cheader_filename = "libpeas/peas.h")]
        public static void cclosure_marshal_VOID__BOXED_OBJECT (GLib.Closure closure, GLib.Value 
return_value, uint n_param_values, GLib.Value param_values, void* invocation_hint, void* marshal_data);
 }
diff --git a/vapi/libsoup-2.4.vapi b/vapi/libsoup-2.4.vapi
index cf67516d2..c93ca8df9 100644
--- a/vapi/libsoup-2.4.vapi
+++ b/vapi/libsoup-2.4.vapi
@@ -261,26 +261,26 @@ namespace Soup {
        [CCode (cheader_filename = "libsoup/soup.h", copy_function = "g_boxed_copy", free_function = 
"g_boxed_free", type_id = "soup_buffer_get_type ()")]
        [Compact]
        public class Buffer {
-               [CCode (array_length_cname = "length", array_length_type = "gsize")]
-               public uint8[] data;
+               [CCode (array_length_cname = "length")]
+               public uint8[:size_t] data;
                public size_t length;
                [CCode (has_construct_function = false)]
                [Version (deprecated = true, deprecated_since = "2.32", replacement = "Buffer.take")]
-               public Buffer (Soup.MemoryUse use, [CCode (array_length_cname = "length", array_length_pos = 
2.1, array_length_type = "gsize")] uint8[] data);
+               public Buffer (Soup.MemoryUse use, [CCode (array_length_cname = "length", array_length_pos = 
2.1)] uint8[:size_t] data);
                public Soup.Buffer copy ();
                public void free ();
                [Version (since = "2.40")]
                public GLib.Bytes get_as_bytes ();
                [Version (since = "2.32")]
-               public void get_data ([CCode (array_length_cname = "length", array_length_pos = 1.1, 
array_length_type = "gsize")] out unowned uint8[] data);
+               public void get_data ([CCode (array_length_cname = "length", array_length_pos = 1.1)] out 
unowned uint8[:size_t] data);
                public void* get_owner ();
                [CCode (has_construct_function = false)]
                public Buffer.subbuffer (Soup.Buffer parent, size_t offset, size_t length);
                [CCode (has_construct_function = false)]
                [Version (since = "2.32")]
-               public Buffer.take ([CCode (array_length_cname = "length", array_length_pos = 1.1, 
array_length_type = "gsize")] owned uint8[] data);
+               public Buffer.take ([CCode (array_length_cname = "length", array_length_pos = 1.1)] owned 
uint8[:size_t] data);
                [CCode (has_construct_function = false)]
-               public Buffer.with_owner ([CCode (array_length_cname = "length", array_length_pos = 1.5, 
array_length_type = "gsize")] uint8[] data, void* owner, GLib.DestroyNotify? owner_dnotify);
+               public Buffer.with_owner ([CCode (array_length_cname = "length", array_length_pos = 1.5)] 
uint8[:size_t] data, void* owner, GLib.DestroyNotify? owner_dnotify);
        }
        [CCode (cheader_filename = "libsoup/soup.h", copy_function = "g_boxed_copy", free_function = 
"g_boxed_free", type_id = "soup_byte_array_get_type ()")]
        [Compact]
@@ -611,8 +611,8 @@ namespace Soup {
                public void set_priority (Soup.MessagePriority priority);
                [Version (since = "2.38")]
                public void set_redirect (uint status_code, string redirect_uri);
-               public void set_request (string? content_type, Soup.MemoryUse req_use, [CCode 
(array_length_cname = "req_length", array_length_pos = 3.1, array_length_type = "gsize")] uint8[] req_body);
-               public void set_response (string? content_type, Soup.MemoryUse resp_use, [CCode 
(array_length_cname = "resp_length", array_length_pos = 3.1, array_length_type = "gsize")] uint8[]? 
resp_body);
+               public void set_request (string? content_type, Soup.MemoryUse req_use, [CCode 
(array_length_cname = "req_length", array_length_pos = 3.1)] uint8[:size_t] req_body);
+               public void set_response (string? content_type, Soup.MemoryUse resp_use, [CCode 
(array_length_cname = "resp_length", array_length_pos = 3.1)] uint8[:size_t]? resp_body);
                [Version (since = "2.70")]
                public void set_site_for_cookies (Soup.URI? site_for_cookies);
                public void set_status (uint status_code);
@@ -676,16 +676,16 @@ namespace Soup {
        [CCode (cheader_filename = "libsoup/soup.h", copy_function = "g_boxed_copy", free_function = 
"g_boxed_free", type_id = "soup_message_body_get_type ()")]
        [Compact]
        public class MessageBody {
-               [CCode (array_length_cname = "length", array_length_type = "gint64")]
-               public uint8[] data;
+               [CCode (array_length_cname = "length")]
+               public uint8[:int64] data;
                public int64 length;
                [CCode (has_construct_function = false)]
                public MessageBody ();
                [Version (deprecated = true, deprecated_since = "2.32", replacement = 
"MessageBody.append_take")]
-               public void append (Soup.MemoryUse use, [CCode (array_length_cname = "length", 
array_length_pos = 2.1, array_length_type = "gsize")] uint8[] data);
+               public void append (Soup.MemoryUse use, [CCode (array_length_cname = "length", 
array_length_pos = 2.1)] uint8[:size_t] data);
                public void append_buffer (Soup.Buffer buffer);
                [Version (since = "2.32")]
-               public void append_take ([CCode (array_length_cname = "length", array_length_pos = 1.1, 
array_length_type = "gsize")] owned uint8[] data);
+               public void append_take ([CCode (array_length_cname = "length", array_length_pos = 1.1)] 
owned uint8[:size_t] data);
                public void complete ();
                public Soup.Buffer flatten ();
                public void free ();
@@ -1084,11 +1084,11 @@ namespace Soup {
                public bool is_connected ();
                public bool is_ssl ();
                public bool listen ();
-               public Soup.SocketIOStatus read ([CCode (array_length_cname = "len", array_length_pos = 1.5, 
array_length_type = "gsize")] uint8[] buffer, out size_t nread, GLib.Cancellable? cancellable = null) throws 
GLib.Error;
-               public Soup.SocketIOStatus read_until ([CCode (array_length_cname = "len", array_length_pos = 
1.5, array_length_type = "gsize")] uint8[] buffer, void* boundary, size_t boundary_len, out size_t nread, 
bool got_boundary, GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public Soup.SocketIOStatus read ([CCode (array_length_cname = "len", array_length_pos = 1.5)] 
uint8[:size_t] buffer, out size_t nread, GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public Soup.SocketIOStatus read_until ([CCode (array_length_cname = "len", array_length_pos = 
1.5)] uint8[:size_t] buffer, void* boundary, size_t boundary_len, out size_t nread, bool got_boundary, 
GLib.Cancellable? cancellable = null) throws GLib.Error;
                public bool start_proxy_ssl (string ssl_host, GLib.Cancellable? cancellable = null);
                public bool start_ssl (GLib.Cancellable? cancellable = null);
-               public Soup.SocketIOStatus write ([CCode (array_length_cname = "len", array_length_pos = 1.5, 
array_length_type = "gsize")] uint8[] buffer, out size_t nwrote, GLib.Cancellable? cancellable = null) throws 
GLib.Error;
+               public Soup.SocketIOStatus write ([CCode (array_length_cname = "len", array_length_pos = 
1.5)] uint8[:size_t] buffer, out size_t nwrote, GLib.Cancellable? cancellable = null) throws GLib.Error;
                [NoAccessorMethod]
                public GLib.MainContext async_context { owned get; construct; }
                public int fd { get; construct; }
@@ -1204,7 +1204,7 @@ namespace Soup {
                public unowned string? get_protocol ();
                public Soup.WebsocketState get_state ();
                public unowned Soup.URI get_uri ();
-               public void send_binary ([CCode (array_length_cname = "length", array_length_pos = 1.1, 
array_length_type = "gsize")] uint8[]? data);
+               public void send_binary ([CCode (array_length_cname = "length", array_length_pos = 1.1)] 
uint8[:size_t]? data);
                [Version (since = "2.68")]
                public void send_message (Soup.WebsocketDataType type, GLib.Bytes message);
                public void send_text (string text);
diff --git a/vapi/pango.vapi b/vapi/pango.vapi
index a9858192e..e9d722175 100644
--- a/vapi/pango.vapi
+++ b/vapi/pango.vapi
@@ -241,7 +241,7 @@ namespace Pango {
                [Version (since = "1.46")]
                public unowned Pango.FontFace get_face ();
                [Version (since = "1.44")]
-               public virtual void get_features ([CCode (array_length_cname = "len", array_length_pos = 1.5, 
array_length_type = "guint")] out unowned HarfBuzz.Feature[] features, ref uint num_features);
+               public virtual void get_features ([CCode (array_length_cname = "len", array_length_pos = 
1.5)] out unowned HarfBuzz.Feature[:uint] features, ref uint num_features);
                [Version (since = "1.10")]
                public virtual unowned Pango.FontMap? get_font_map ();
                public virtual void get_glyph_extents (Pango.Glyph glyph, out Pango.Rectangle ink_rect, out 
Pango.Rectangle logical_rect);
diff --git a/vapi/poppler-glib.vapi b/vapi/poppler-glib.vapi
index a9e6f72f8..3bb973860 100644
--- a/vapi/poppler-glib.vapi
+++ b/vapi/poppler-glib.vapi
@@ -652,9 +652,9 @@ namespace Poppler {
                [Version (since = "0.26")]
                public string get_text_for_area (Poppler.Rectangle area);
                [Version (since = "0.16")]
-               public bool get_text_layout ([CCode (array_length_cname = "n_rectangles", array_length_pos = 
1.1, array_length_type = "guint")] out Poppler.Rectangle[] rectangles);
+               public bool get_text_layout ([CCode (array_length_cname = "n_rectangles", array_length_pos = 
1.1)] out Poppler.Rectangle[:uint] rectangles);
                [Version (since = "0.26")]
-               public bool get_text_layout_for_area (Poppler.Rectangle area, [CCode (array_length_cname = 
"n_rectangles", array_length_pos = 2.1, array_length_type = "guint")] out Poppler.Rectangle[] rectangles);
+               public bool get_text_layout_for_area (Poppler.Rectangle area, [CCode (array_length_cname = 
"n_rectangles", array_length_pos = 2.1)] out Poppler.Rectangle[:uint] rectangles);
                public Cairo.Surface get_thumbnail ();
                public bool get_thumbnail_size (out int width, out int height);
                public Poppler.PageTransition get_transition ();
@@ -742,12 +742,12 @@ namespace Poppler {
                public bool get_color (out unowned Poppler.Color color);
                [Version (since = "0.26")]
                public uint get_column_count ();
-               [CCode (array_length_pos = 0.1, array_length_type = "guint")]
+               [CCode (array_length_pos = 0.1)]
                [Version (since = "0.26")]
-               public double[] get_column_gaps ();
-               [CCode (array_length_pos = 0.1, array_length_type = "guint")]
+               public double[:uint] get_column_gaps ();
+               [CCode (array_length_pos = 0.1)]
                [Version (since = "0.26")]
-               public double[] get_column_widths ();
+               public double[:uint] get_column_widths ();
                [Version (since = "0.26")]
                public double get_end_indent ();
                [Version (since = "0.26")]
@@ -815,9 +815,9 @@ namespace Poppler {
                public Poppler.StructureTextDecoration get_text_decoration_type ();
                [Version (since = "0.26")]
                public double get_text_indent ();
-               [CCode (array_length_pos = 0.1, array_length_type = "guint")]
+               [CCode (array_length_pos = 0.1)]
                [Version (since = "0.26")]
-               public Poppler.TextSpan[] get_text_spans ();
+               public Poppler.TextSpan[:uint] get_text_spans ();
                [Version (since = "0.26")]
                public string get_title ();
                [Version (since = "0.26")]
@@ -1493,10 +1493,10 @@ namespace Poppler {
                public static GLib.Quark quark ();
        }
        [CCode (cheader_filename = "poppler.h", instance_pos = 1.9)]
-       public delegate bool AttachmentSaveFunc ([CCode (array_length_cname = "count", array_length_pos = 
1.1, array_length_type = "gsize")] uint8[] buf) throws GLib.Error;
+       public delegate bool AttachmentSaveFunc ([CCode (array_length_cname = "count", array_length_pos = 
1.1)] uint8[:size_t] buf) throws GLib.Error;
        [CCode (cheader_filename = "poppler.h", instance_pos = 1.9)]
        [Version (since = "0.14")]
-       public delegate bool MediaSaveFunc ([CCode (array_length_cname = "count", array_length_pos = 1.1, 
array_length_type = "gsize")] uint8[] buf) throws GLib.Error;
+       public delegate bool MediaSaveFunc ([CCode (array_length_cname = "count", array_length_pos = 1.1)] 
uint8[:size_t] buf) throws GLib.Error;
        [CCode (cheader_filename = "poppler.h", cname = "POPPLER_HAS_CAIRO")]
        public const int HAS_CAIRO;
        [CCode (cheader_filename = "poppler.h", cname = "POPPLER_MAJOR_VERSION")]
@@ -1517,8 +1517,8 @@ namespace Poppler {
        public static unowned string get_version ();
        [CCode (cheader_filename = "poppler.h")]
        [Version (since = "0.73")]
-       public static string named_dest_from_bytestring ([CCode (array_length_cname = "length", 
array_length_pos = 1.1, array_length_type = "gsize")] uint8[] data);
-       [CCode (array_length_pos = 1.1, array_length_type = "gsize", cheader_filename = "poppler.h")]
+       public static string named_dest_from_bytestring ([CCode (array_length_cname = "length", 
array_length_pos = 1.1)] uint8[:size_t] data);
+       [CCode (array_length_pos = 1.1, cheader_filename = "poppler.h")]
        [Version (since = "0.73")]
-       public static uint8[]? named_dest_to_bytestring (string name);
+       public static uint8[:size_t]? named_dest_to_bytestring (string name);
 }
diff --git a/vapi/rest-0.7.vapi b/vapi/rest-0.7.vapi
index 015fc6880..7b8aba885 100644
--- a/vapi/rest-0.7.vapi
+++ b/vapi/rest-0.7.vapi
@@ -65,7 +65,7 @@ namespace Rest {
        [Compact]
        public class Param {
                [CCode (has_construct_function = false)]
-               public Param.full (global::string name, Rest.MemoryUse use, [CCode (array_length_cname = 
"length", array_length_pos = 3.5, array_length_type = "gsize")] uint8[] data, global::string content_type, 
global::string filename);
+               public Param.full (global::string name, Rest.MemoryUse use, [CCode (array_length_cname = 
"length", array_length_pos = 3.5)] uint8[:size_t] data, global::string content_type, global::string filename);
                public void* get_content ();
                public size_t get_content_length ();
                public unowned global::string get_content_type ();
@@ -77,7 +77,7 @@ namespace Rest {
                public Param.string (global::string name, Rest.MemoryUse use, global::string string);
                public void unref ();
                [CCode (has_construct_function = false)]
-               public Param.with_owner (global::string name, [CCode (array_length_cname = "length", 
array_length_pos = 2.5, array_length_type = "gsize")] uint8[] data, global::string content_type, 
global::string? filename, owned void* owner, GLib.DestroyNotify? owner_dnotify);
+               public Param.with_owner (global::string name, [CCode (array_length_cname = "length", 
array_length_pos = 2.5)] uint8[:size_t] data, global::string content_type, global::string? filename, owned 
void* owner, GLib.DestroyNotify? owner_dnotify);
        }
        [CCode (cheader_filename = "rest/rest-params.h", has_type_id = false)]
        [Compact]
diff --git a/vapi/webkit2gtk-4.0.vapi b/vapi/webkit2gtk-4.0.vapi
index 69ac6a140..a25542f6c 100644
--- a/vapi/webkit2gtk-4.0.vapi
+++ b/vapi/webkit2gtk-4.0.vapi
@@ -1288,7 +1288,7 @@ namespace WebKit {
        public class WebResource : GLib.Object {
                [CCode (has_construct_function = false)]
                protected WebResource ();
-               public async uint8[] get_data (GLib.Cancellable? cancellable = null) throws GLib.Error;
+               public async uint8[:size_t] get_data (GLib.Cancellable? cancellable = null) throws GLib.Error;
                public unowned WebKit.URIResponse get_response ();
                public unowned string get_uri ();
                public WebKit.URIResponse response { get; }


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