vala r988 - in trunk: . gobject vapi vapigen



Author: juergbi
Date: Thu Feb  7 12:18:59 2008
New Revision: 988
URL: http://svn.gnome.org/viewvc/vala?rev=988&view=rev

Log:
2008-02-07  Juerg Billeter  <j bitron ch>

	* gobject/valaccodegenerator.vala: use 0 as array length when array
	  is a null literal

	* vapigen/valagidlparser.vala: add basic array length support

	* vapi/cairo.vapi: fix some array length parameters

	* vapi/atk.vapi, vapi/gconf-2.0.vapi, vapi/gdk-2.0.vapi,
	  vapi/gdk-pixbuf-2.0.vapi, vapi/gio-2.0.vapi,
	  vapi/gnome-desktop-2.0.vapi, vapi/gstreamer-0.10.vapi,
	  vapi/gstreamer-audio-0.10.vapi, vapi/gstreamer-check-0.10.vapi,
	  vapi/gstreamer-netbuffer-0.10.vapi, vapi/gtk+-2.0.vapi,
	  vapi/libgnome-2.0.vapi, vapi/libgnomeui-2.0.vapi, vapi/libnotify.vapi,
	  vapi/libsoup-2.2.vapi, vapi/libsoup-2.4.vapi, vapi/pango.vapi,
	  vapi/vte.vapi: regenerated


Modified:
   trunk/ChangeLog
   trunk/gobject/valaccodegenerator.vala
   trunk/vapi/atk.vapi
   trunk/vapi/cairo.vapi
   trunk/vapi/gconf-2.0.vapi
   trunk/vapi/gdk-2.0.vapi
   trunk/vapi/gdk-pixbuf-2.0.vapi
   trunk/vapi/gio-2.0.vapi
   trunk/vapi/gnome-desktop-2.0.vapi
   trunk/vapi/gstreamer-0.10.vapi
   trunk/vapi/gstreamer-audio-0.10.vapi
   trunk/vapi/gstreamer-check-0.10.vapi
   trunk/vapi/gstreamer-netbuffer-0.10.vapi
   trunk/vapi/gtk+-2.0.vapi
   trunk/vapi/libgnome-2.0.vapi
   trunk/vapi/libgnomeui-2.0.vapi
   trunk/vapi/libnotify.vapi
   trunk/vapi/libsoup-2.2.vapi
   trunk/vapi/libsoup-2.4.vapi
   trunk/vapi/pango.vapi
   trunk/vapi/vte.vapi
   trunk/vapigen/valagidlparser.vala

Modified: trunk/gobject/valaccodegenerator.vala
==============================================================================
--- trunk/gobject/valaccodegenerator.vala	(original)
+++ trunk/gobject/valaccodegenerator.vala	Thu Feb  7 12:18:59 2008
@@ -2260,6 +2260,11 @@
 				ccall.add_argument (new CCodeIdentifier (constant.get_cname ()));
 				return ccall;
 			}
+		} else if (array_expr is LiteralExpression) {
+			var lit = (LiteralExpression) array_expr;
+			if (lit.literal is NullLiteral) {
+				return new CCodeConstant ("0");
+			}
 		}
 
 		if (!is_out) {

Modified: trunk/vapi/atk.vapi
==============================================================================
--- trunk/vapi/atk.vapi	(original)
+++ trunk/vapi/atk.vapi	Thu Feb  7 12:18:59 2008
@@ -406,8 +406,7 @@
 		public void add_target (Atk.Object target);
 		public Atk.RelationType get_relation_type ();
 		public weak GLib.PtrArray get_target ();
-		[NoArrayLength]
-		public Relation (Atk.Object[] targets, int n_targets, Atk.RelationType relationship);
+		public Relation (Atk.Object[] targets, Atk.RelationType relationship);
 		public static Atk.RelationType type_for_name (string name);
 		public static weak string type_get_name (Atk.RelationType type);
 		public static Atk.RelationType type_register (string name);
@@ -431,13 +430,11 @@
 	[CCode (cheader_filename = "atk/atk.h")]
 	public class StateSet : GLib.Object {
 		public bool add_state (Atk.StateType type);
-		[NoArrayLength]
-		public void add_states (Atk.StateType[] types, int n_types);
+		public void add_states (Atk.StateType[] types);
 		public weak Atk.StateSet and_sets (Atk.StateSet compare_set);
 		public void clear_states ();
 		public bool contains_state (Atk.StateType type);
-		[NoArrayLength]
-		public bool contains_states (Atk.StateType[] types, int n_types);
+		public bool contains_states (Atk.StateType[] types);
 		public bool is_empty ();
 		public StateSet ();
 		public weak Atk.StateSet or_sets (Atk.StateSet compare_set);

Modified: trunk/vapi/cairo.vapi
==============================================================================
--- trunk/vapi/cairo.vapi	(original)
+++ trunk/vapi/cairo.vapi	Thu Feb  7 12:18:59 2008
@@ -1,6 +1,6 @@
 /* cairo.vala
  *
- * Copyright (C) 2006-2007  JÃrg Billeter
+ * Copyright (C) 2006-2008  JÃrg Billeter
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -49,8 +49,7 @@
 		public void set_antialias (Antialias antialias);
 		public Antialias get_antialias ();
 		
-		[NoArrayLength ()]
-		public void set_dash (double[] dashes, int num_dashes, double offset);
+		public void set_dash (double[] dashes, double offset);
 		
 		public void set_fill_rule (FillRule fill_rule);
 		public FillRule get_fill_rule ();
@@ -116,8 +115,7 @@
 		
 		public void rectangle (double x, double y, double width, double height);
 		
-		[NoArrayLength ()]
-		public void glyph_path (Glyph[] glyphs, int num_glyphs);
+		public void glyph_path (Glyph[] glyphs);
 		public void text_path (string! utf8);
 		
 		public void rel_curve_to (double dx1, double dy1, double dx2, double dy2, double dx3, double dy3);
@@ -143,16 +141,14 @@
 		public void get_font_options (ref FontOptions options);
 		
 		public void show_text (string! utf8);
-		[NoArrayLength ()]
-		public void show_glyphs (Glyph[] glyphs, int num_glyphs);
+		public void show_glyphs (Glyph[] glyphs);
 		
 		public weak FontFace get_font_face ();
 		public void font_extents (ref FontExtents extents);
 		public void set_font_face (FontFace font_face);
 		public void set_scaled_font (ScaledFont! font);
 		public void text_extents (string! utf8, ref TextExtents extents);
-		[NoArrayLength ()]
-		public void glyph_extents (Glyph[] glyphs, int num_glyphs, ref TextExtents extents);
+		public void glyph_extents (Glyph[] glyphs, ref TextExtents extents);
 	}
 	
 	public enum Antialias {
@@ -322,8 +318,7 @@
 		public Status status ();
 		public void extents (ref FontExtents extents);
 		public void text_extents (string! utf8, ref TextExtents extents);
-		[NoArrayLength ()]
-		public void glyph_extents (Glyph[] glyphs, int num_glyphs, ref TextExtents extents);
+		public void glyph_extents (Glyph[] glyphs, ref TextExtents extents);
 		public weak FontFace get_font_face ();
 		public void get_font_options (ref FontOptions options);
 		public void get_font_matrix (out Matrix font_matrix);
@@ -469,10 +464,8 @@
 		public void set_size (double width_in_points, double height_in_points);
 	}
 	
-	[NoArrayLength ()]
-	public static delegate Status ReadFunc (pointer closure, uchar[] data, uint length);
-	[NoArrayLength ()]
-	public static delegate Status WriteFunc (pointer closure, uchar[] data, uint length);
+	public static delegate Status ReadFunc (pointer closure, uchar[] data);
+	public static delegate Status WriteFunc (pointer closure, uchar[] data);
 	
 	[CCode (cname = "cairo_surface_t", cheader_filename = "cairo-ps.h")]
 	public class PsSurface : Surface {
@@ -493,8 +486,7 @@
 		[CCode (cname = "cairo_svg_surface_create_for_stream")]
 		public SvgSurface.for_stream (WriteFunc write_func, pointer closure, double width_in_points, double height_in_points);
 		public void restrict_to_version (SvgVersion version);
-		[NoArrayLength ()]
-		public static void get_versions (out SvgVersion[] versions, ref int num_versions);
+		public static void get_versions (out SvgVersion[] versions);
 	}
 	
 	[CCode (cname = "cairo_svg_version_t", cprefix = "CAIRO_SVG_")]

Modified: trunk/vapi/gconf-2.0.vapi
==============================================================================
--- trunk/vapi/gconf-2.0.vapi	(original)
+++ trunk/vapi/gconf-2.0.vapi	Thu Feb  7 12:18:59 2008
@@ -286,14 +286,12 @@
 	public static delegate void NotifyFunc (GConf.Engine conf, uint cnxn_id, GConf.Entry entry, pointer user_data);
 	public static weak string concat_dir_and_key (string dir, string key);
 	public static int debug_shutdown ();
-	[NoArrayLength]
 	public static weak string enum_to_string (GConf.EnumStringPair[] lookup_table, int enum_value);
 	public static GLib.Quark error_quark ();
 	public static weak string escape_key (string arbitrary_text, int len);
 	public static bool init (int argc, out weak string argv) throws GLib.Error;
 	public static bool is_initialized ();
 	public static bool key_is_below (string above, string below);
-	[NoArrayLength]
 	public static bool string_to_enum (GConf.EnumStringPair[] lookup_table, string str, int enum_value_retloc);
 	public static weak string unescape_key (string escaped_key, int len);
 	public static weak string unique_key ();

Modified: trunk/vapi/gdk-2.0.vapi
==============================================================================
--- trunk/vapi/gdk-2.0.vapi	(original)
+++ trunk/vapi/gdk-2.0.vapi	Thu Feb  7 12:18:59 2008
@@ -837,8 +837,7 @@
 		public bool empty ();
 		public bool equal (Gdk.Region region2);
 		public void get_clipbox (out Gdk.Rectangle rectangle);
-		[NoArrayLength]
-		public void get_rectangles (Gdk.Rectangle[] rectangles, int n_rectangles);
+		public void get_rectangles (Gdk.Rectangle[] rectangles);
 		public void intersect (Gdk.Region source2);
 		public Region ();
 		public void offset (int dx, int dy);
@@ -847,8 +846,7 @@
 		public Gdk.OverlapType rect_in (Gdk.Rectangle rectangle);
 		public static weak Gdk.Region rectangle (Gdk.Rectangle rectangle);
 		public void shrink (int dx, int dy);
-		[NoArrayLength]
-		public void spans_intersect_foreach (Gdk.Span[] spans, int n_spans, bool sorted, Gdk.SpanFunc function, pointer data);
+		public void spans_intersect_foreach (Gdk.Span[] spans, bool sorted, Gdk.SpanFunc function, pointer data);
 		public void subtract (Gdk.Region source2);
 		public void union (Gdk.Region source2);
 		public void union_with_rect (Gdk.Rectangle rect);
@@ -860,8 +858,7 @@
 		public weak uint[] colors;
 		public int n_colors;
 		public weak GLib.SList info_list;
-		[NoArrayLength]
-		public RgbCmap (uint[] colors, int n_colors);
+		public RgbCmap (uint[] colors);
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class Segment {
@@ -961,9 +958,7 @@
 		public weak Gdk.Visual visual;
 		public pointer windowing_data;
 		public bool alloc_color (Gdk.Color color, bool writeable, bool best_match);
-		[NoArrayLength]
 		public int alloc_colors (Gdk.Color[] colors, int ncolors, bool writeable, bool best_match, bool success);
-		[NoArrayLength]
 		public void free_colors (Gdk.Color[] colors, int ncolors);
 		public weak Gdk.Screen get_screen ();
 		public static weak Gdk.Colormap get_system ();
@@ -981,12 +976,10 @@
 		public weak Gdk.DeviceAxis axes;
 		public int num_keys;
 		public weak Gdk.DeviceKey keys;
-		[NoArrayLength]
-		public static void free_history (Gdk.TimeCoord[] events, int n_events);
+		public static void free_history (Gdk.TimeCoord[] events);
 		public bool get_axis (double axes, Gdk.AxisUse use, double value);
 		public static weak Gdk.Device get_core_pointer ();
-		[NoArrayLength]
-		public bool get_history (Gdk.Window window, uint start, uint stop, Gdk.TimeCoord[] events, int n_events);
+		public bool get_history (Gdk.Window window, uint start, uint stop, Gdk.TimeCoord[] events);
 		public void get_state (Gdk.Window window, double axes, Gdk.ModifierType mask);
 		public void set_axis_use (uint index_, Gdk.AxisUse use);
 		public void set_key (uint index_, uint keyval, Gdk.ModifierType modifiers);
@@ -1036,8 +1029,7 @@
 		public void set_double_click_distance (uint distance);
 		public void set_double_click_time (uint msec);
 		public weak Gdk.DisplayPointerHooks set_pointer_hooks (Gdk.DisplayPointerHooks new_hooks);
-		[NoArrayLength]
-		public void store_clipboard (Gdk.Window clipboard_window, uint time_, Gdk.Atom[] targets, int n_targets);
+		public void store_clipboard (Gdk.Window clipboard_window, uint time_, Gdk.Atom[] targets);
 		public bool supports_clipboard_persistence ();
 		public bool supports_composite ();
 		public bool supports_cursor_alpha ();
@@ -1110,8 +1102,7 @@
 		[NoWrapper]
 		public virtual void draw_text_wc (Gdk.Font font, Gdk.GC gc, int x, int y, Gdk.WChar text, int text_length);
 		[NoWrapper]
-		[NoArrayLength]
-		public virtual void draw_trapezoids (Gdk.GC gc, Gdk.Trapezoid[] trapezoids, int n_trapezoids);
+		public virtual void draw_trapezoids (Gdk.GC gc, Gdk.Trapezoid[] trapezoids);
 		public virtual weak Gdk.Region get_clip_region ();
 		public virtual weak Gdk.Colormap get_colormap ();
 		[NoWrapper]
@@ -1157,7 +1148,6 @@
 		public void set_tile (Gdk.Pixmap tile);
 		public void set_ts_origin (int x, int y);
 		public virtual void get_values (Gdk.GCValues values);
-		[NoArrayLength]
 		public virtual void set_dashes (int dash_offset, char[] dash_list, int n);
 		public virtual void set_values (Gdk.GCValues values, Gdk.GCValuesMask values_mask);
 	}
@@ -1187,8 +1177,7 @@
 		public static weak Gdk.Keymap get_default ();
 		public Pango.Direction get_direction ();
 		public bool get_entries_for_keycode (uint hardware_keycode, out weak Gdk.KeymapKey keys, uint keyvals, int n_entries);
-		[NoArrayLength]
-		public bool get_entries_for_keyval (uint keyval, Gdk.KeymapKey[] keys, int n_keys);
+		public bool get_entries_for_keyval (uint keyval, Gdk.KeymapKey[] keys);
 		public static weak Gdk.Keymap get_for_display (Gdk.Display display);
 		public bool have_bidi_layouts ();
 		public uint lookup_key (Gdk.KeymapKey key);
@@ -1491,10 +1480,8 @@
 	public static void draw_drawable (Gdk.Drawable drawable, Gdk.GC gc, Gdk.Drawable src, int xsrc, int ysrc, int xdest, int ydest, int width, int height);
 	public static void draw_glyphs (Gdk.Drawable drawable, Gdk.GC gc, Pango.Font font, int x, int y, Pango.GlyphString glyphs);
 	public static void draw_glyphs_transformed (Gdk.Drawable drawable, Gdk.GC gc, Pango.Matrix matrix, Pango.Font font, int x, int y, Pango.GlyphString glyphs);
-	[NoArrayLength]
 	public static void draw_gray_image (Gdk.Drawable drawable, Gdk.GC gc, int x, int y, int width, int height, Gdk.RgbDither dith, uchar[] buf, int rowstride);
 	public static void draw_image (Gdk.Drawable drawable, Gdk.GC gc, Gdk.Image image, int xsrc, int ysrc, int xdest, int ydest, int width, int height);
-	[NoArrayLength]
 	public static void draw_indexed_image (Gdk.Drawable drawable, Gdk.GC gc, int x, int y, int width, int height, Gdk.RgbDither dith, uchar[] buf, int rowstride, Gdk.RgbCmap cmap);
 	public static void draw_layout (Gdk.Drawable drawable, Gdk.GC gc, int x, int y, Pango.Layout layout);
 	public static void draw_layout_line (Gdk.Drawable drawable, Gdk.GC gc, int x, int y, Pango.LayoutLine line);
@@ -1507,24 +1494,18 @@
 	public static void draw_points (Gdk.Drawable drawable, Gdk.GC gc, Gdk.Point points, int npoints);
 	public static void draw_polygon (Gdk.Drawable drawable, Gdk.GC gc, bool filled, Gdk.Point points, int npoints);
 	public static void draw_rectangle (Gdk.Drawable drawable, Gdk.GC gc, bool filled, int x, int y, int width, int height);
-	[NoArrayLength]
 	public static void draw_rgb_32_image (Gdk.Drawable drawable, Gdk.GC gc, int x, int y, int width, int height, Gdk.RgbDither dith, uchar[] buf, int rowstride);
-	[NoArrayLength]
 	public static void draw_rgb_32_image_dithalign (Gdk.Drawable drawable, Gdk.GC gc, int x, int y, int width, int height, Gdk.RgbDither dith, uchar[] buf, int rowstride, int xdith, int ydith);
-	[NoArrayLength]
 	public static void draw_rgb_image (Gdk.Drawable drawable, Gdk.GC gc, int x, int y, int width, int height, Gdk.RgbDither dith, uchar[] rgb_buf, int rowstride);
-	[NoArrayLength]
 	public static void draw_rgb_image_dithalign (Gdk.Drawable drawable, Gdk.GC gc, int x, int y, int width, int height, Gdk.RgbDither dith, uchar[] rgb_buf, int rowstride, int xdith, int ydith);
 	public static void draw_segments (Gdk.Drawable drawable, Gdk.GC gc, Gdk.Segment segs, int nsegs);
-	[NoArrayLength]
-	public static void draw_trapezoids (Gdk.Drawable drawable, Gdk.GC gc, Gdk.Trapezoid[] trapezoids, int n_trapezoids);
+	public static void draw_trapezoids (Gdk.Drawable drawable, Gdk.GC gc, Gdk.Trapezoid[] trapezoids);
 	public static void drop_finish (Gdk.DragContext context, bool success, uint time_);
 	public static void drop_reply (Gdk.DragContext context, bool ok, uint time_);
 	public static int error_trap_pop ();
 	public static void error_trap_push ();
 	public static bool events_pending ();
 	public static void flush ();
-	[NoArrayLength]
 	public static void free_compound_text (uchar[] ctext);
 	public static void free_text_list (string list);
 	public static weak Gdk.Window get_default_root_window ();
@@ -1564,10 +1545,8 @@
 	public static bool pointer_is_grabbed ();
 	public static void pointer_ungrab (uint time_);
 	public static void pre_parse_libgtk_only ();
-	[NoArrayLength]
 	public static void property_change (Gdk.Window window, Gdk.Atom property, Gdk.Atom type, int format, Gdk.PropMode mode, uchar[] data, int nelements);
 	public static void property_delete (Gdk.Window window, Gdk.Atom property);
-	[NoArrayLength]
 	public static bool property_get (Gdk.Window window, Gdk.Atom property, Gdk.Atom type, ulong offset, ulong length, int pdelete, out Gdk.Atom actual_property_type, int actual_format, int actual_length, uchar[] data);
 	public static void query_depths (int depths, int count);
 	public static void query_visual_types (out Gdk.VisualType visual_types, int count);
@@ -1584,7 +1563,6 @@
 	public static weak Gdk.Window selection_owner_get_for_display (Gdk.Display display, Gdk.Atom selection);
 	public static bool selection_owner_set (Gdk.Window owner, Gdk.Atom selection, uint time_, bool send_event);
 	public static bool selection_owner_set_for_display (Gdk.Display display, Gdk.Window owner, Gdk.Atom selection, uint time_, bool send_event);
-	[NoArrayLength]
 	public static bool selection_property_get (Gdk.Window requestor, uchar[] data, Gdk.Atom prop_type, int prop_format);
 	public static void selection_send_notify (uint requestor, Gdk.Atom selection, Gdk.Atom target, Gdk.Atom property, uint time_);
 	public static void selection_send_notify_for_display (Gdk.Display display, uint requestor, Gdk.Atom selection, Gdk.Atom target, Gdk.Atom property, uint time_);
@@ -1598,18 +1576,12 @@
 	public static bool spawn_command_line_on_screen (Gdk.Screen screen, string command_line) throws GLib.Error;
 	public static bool spawn_on_screen (Gdk.Screen screen, string working_directory, string argv, string envp, GLib.SpawnFlags flags, GLib.SpawnChildSetupFunc child_setup, pointer user_data, int child_pid) throws GLib.Error;
 	public static bool spawn_on_screen_with_pipes (Gdk.Screen screen, string working_directory, string argv, string envp, GLib.SpawnFlags flags, GLib.SpawnChildSetupFunc child_setup, pointer user_data, int child_pid, int standard_input, int standard_output, int standard_error) throws GLib.Error;
-	[NoArrayLength]
 	public static int string_to_compound_text (string str, Gdk.Atom encoding, int format, uchar[] ctext, int length);
-	[NoArrayLength]
 	public static int string_to_compound_text_for_display (Gdk.Display display, string str, Gdk.Atom encoding, int format, uchar[] ctext, int length);
 	public static void synthesize_window_state (Gdk.Window window, Gdk.WindowState unset_flags, Gdk.WindowState set_flags);
-	[NoArrayLength]
 	public static int text_property_to_text_list (Gdk.Atom encoding, int format, uchar[] text, int length, string list);
-	[NoArrayLength]
 	public static int text_property_to_text_list_for_display (Gdk.Display display, Gdk.Atom encoding, int format, uchar[] text, int length, string list);
-	[NoArrayLength]
 	public static int text_property_to_utf8_list (Gdk.Atom encoding, int format, uchar[] text, int length, string list);
-	[NoArrayLength]
 	public static int text_property_to_utf8_list_for_display (Gdk.Display display, Gdk.Atom encoding, int format, uchar[] text, int length, string list);
 	public static uint threads_add_idle (GLib.SourceFunc function, pointer data);
 	public static uint threads_add_idle_full (int priority, GLib.SourceFunc function, pointer data, GLib.DestroyNotify notify);
@@ -1620,9 +1592,7 @@
 	public static void threads_leave ();
 	public static void threads_set_lock_functions (GLib.Callback enter_fn, GLib.Callback leave_fn);
 	public static uint unicode_to_keyval (uint wc);
-	[NoArrayLength]
 	public static bool utf8_to_compound_text (string str, Gdk.Atom encoding, int format, uchar[] ctext, int length);
-	[NoArrayLength]
 	public static bool utf8_to_compound_text_for_display (Gdk.Display display, string str, Gdk.Atom encoding, int format, uchar[] ctext, int length);
 	public static weak string utf8_to_string_target (string str);
 }

Modified: trunk/vapi/gdk-pixbuf-2.0.vapi
==============================================================================
--- trunk/vapi/gdk-pixbuf-2.0.vapi	(original)
+++ trunk/vapi/gdk-pixbuf-2.0.vapi	Thu Feb  7 12:18:59 2008
@@ -92,28 +92,23 @@
 		public int get_height ();
 		public int get_n_channels ();
 		public weak string get_option (string key);
-		[NoArrayLength]
 		public weak uchar[] get_pixels ();
 		public int get_rowstride ();
 		public int get_width ();
 		public Pixbuf (Gdk.Colorspace colorspace, bool has_alpha, int bits_per_sample, int width, int height);
-		[NoArrayLength]
 		public Pixbuf.from_data (uchar[] data, Gdk.Colorspace colorspace, bool has_alpha, int bits_per_sample, int width, int height, int rowstride, Gdk.PixbufDestroyNotify destroy_fn, pointer destroy_fn_data);
 		public Pixbuf.from_file (string filename) throws GLib.Error;
 		public Pixbuf.from_file_at_scale (string filename, int width, int height, bool preserve_aspect_ratio) throws GLib.Error;
 		public Pixbuf.from_file_at_size (string filename, int width, int height) throws GLib.Error;
 		public Pixbuf.from_inline (int data_length, uchar data, bool copy_pixels) throws GLib.Error;
-		[NoArrayLength]
 		public Pixbuf.from_xpm_data (string[] data);
 		public Pixbuf.subpixbuf (Gdk.Pixbuf src_pixbuf, int src_x, int src_y, int width, int height);
 		public weak Gdk.Pixbuf rotate_simple (Gdk.PixbufRotation angle);
 		public void saturate_and_pixelate (Gdk.Pixbuf dest, float saturation, bool pixelate);
 		public bool save (string filename, string type) throws GLib.Error;
 		public bool save_to_buffer (string buffer, ulong buffer_size, string type) throws GLib.Error;
-		[NoArrayLength]
 		public bool save_to_bufferv (string buffer, ulong buffer_size, string type, string[] option_keys, string[] option_values) throws GLib.Error;
 		public bool save_to_callback (Gdk.PixbufSaveFunc save_func, pointer user_data, string type) throws GLib.Error;
-		[NoArrayLength]
 		public bool save_to_callbackv (Gdk.PixbufSaveFunc save_func, pointer user_data, string type, string[] option_keys, string[] option_values) throws GLib.Error;
 		public bool savev (string filename, string type, out weak string option_keys, out weak string option_values) throws GLib.Error;
 		public void scale (Gdk.Pixbuf dest, int dest_x, int dest_y, int dest_width, int dest_height, double offset_x, double offset_y, double scale_x, double scale_y, Gdk.InterpType interp_type);
@@ -161,7 +156,6 @@
 		public PixbufLoader.with_mime_type (string mime_type) throws GLib.Error;
 		public PixbufLoader.with_type (string image_type) throws GLib.Error;
 		public void set_size (int width, int height);
-		[NoArrayLength]
 		public bool write (uchar[] buf, ulong count) throws GLib.Error;
 		public signal void area_prepared ();
 		public signal void area_updated (int x, int y, int width, int height);
@@ -186,10 +180,8 @@
 		public uint height;
 		[NoArrayLength]
 		public weak uchar[] pixel_data;
-		[NoArrayLength]
 		public bool deserialize (uint stream_length, uchar[] stream) throws GLib.Error;
 		public pointer from_pixbuf (Gdk.Pixbuf pixbuf, bool use_rle);
-		[NoArrayLength]
 		public weak uchar[] serialize (out uint stream_length_p);
 		public weak GLib.StringBuilder to_csource (string name, Gdk.PixdataDumpType dump_type);
 	}

Modified: trunk/vapi/gio-2.0.vapi
==============================================================================
--- trunk/vapi/gio-2.0.vapi	(original)
+++ trunk/vapi/gio-2.0.vapi	Thu Feb  7 12:18:59 2008
@@ -561,7 +561,6 @@
 	public class ThemedIcon : GLib.Object, GLib.Icon {
 		public weak string get_names ();
 		public ThemedIcon (string iconname);
-		[NoArrayLength]
 		public ThemedIcon.from_names (string[] iconnames, int len);
 		public ThemedIcon.with_default_fallbacks (string iconname);
 	}
@@ -887,7 +886,6 @@
 	public static weak GLib.Icon g_content_type_get_icon (string type);
 	[CCode (cname = "g_content_type_get_mime_type")]
 	public static weak string g_content_type_get_mime_type (string type);
-	[NoArrayLength]
 	[CCode (cname = "g_content_type_guess")]
 	public static weak string g_content_type_guess (string filename, uchar[] data, ulong data_size, bool result_uncertain);
 	[CCode (cname = "g_content_type_is_a")]

Modified: trunk/vapi/gnome-desktop-2.0.vapi
==============================================================================
--- trunk/vapi/gnome-desktop-2.0.vapi	(original)
+++ trunk/vapi/gnome-desktop-2.0.vapi	Thu Feb  7 12:18:59 2008
@@ -55,7 +55,6 @@
 		public void clear_section (string section);
 		public weak Gnome.DesktopItem copy ();
 		public int drop_uri_list (string uri_list, Gnome.DesktopItemLaunchFlags flags) throws GLib.Error;
-		[NoArrayLength]
 		public int drop_uri_list_with_env (string uri_list, Gnome.DesktopItemLaunchFlags flags, string[] envp) throws GLib.Error;
 		public static GLib.Quark error_quark ();
 		public bool exists ();
@@ -73,7 +72,6 @@
 		public weak string get_strings (string attr);
 		public int launch (GLib.List file_list, Gnome.DesktopItemLaunchFlags flags) throws GLib.Error;
 		public int launch_on_screen (GLib.List file_list, Gnome.DesktopItemLaunchFlags flags, Gdk.Screen screen, int workspace) throws GLib.Error;
-		[NoArrayLength]
 		public int launch_with_env (GLib.List file_list, Gnome.DesktopItemLaunchFlags flags, string[] envp) throws GLib.Error;
 		public DesktopItem ();
 		public DesktopItem.from_basename (string basename, Gnome.DesktopItemLoadFlags flags) throws GLib.Error;
@@ -89,7 +87,6 @@
 		public void set_location (string location);
 		public void set_location_file (string file);
 		public void set_string (string attr, string value);
-		[NoArrayLength]
 		public void set_strings (string attr, string[] strings);
 	}
 	[CCode (cheader_filename = "libgnomeui/gnome-ditem-edit.h")]

Modified: trunk/vapi/gstreamer-0.10.vapi
==============================================================================
--- trunk/vapi/gstreamer-0.10.vapi	(original)
+++ trunk/vapi/gstreamer-0.10.vapi	Thu Feb  7 12:18:59 2008
@@ -869,9 +869,7 @@
 		public bool get_string (string tag, string value);
 		public bool get_string_index (string tag, uint index, string value);
 		public uint get_tag_size (string tag);
-		[NoArrayLength]
 		public bool get_uchar (string tag, uchar[] value);
-		[NoArrayLength]
 		public bool get_uchar_index (string tag, uint index, uchar[] value);
 		public bool get_uint (string tag, uint value);
 		public bool get_uint64 (string tag, uint64 value);
@@ -1661,16 +1659,12 @@
 	public class XML : Gst.Object {
 		public weak GLib.List topelements;
 		public pointer ns;
-		[NoArrayLength]
 		public weak Gst.Element get_element (uchar[] name);
 		public weak GLib.List get_topelements ();
 		public static weak Gst.Element make_element (pointer cur, Gst.Object parent);
 		public XML ();
-		[NoArrayLength]
 		public bool parse_doc (pointer doc, uchar[] root);
-		[NoArrayLength]
 		public bool parse_file (uchar[] fname, uchar[] root);
-		[NoArrayLength]
 		public bool parse_memory (uchar[] buffer, uint size, string root);
 		public static pointer write (Gst.Element element);
 		public static int write_file (Gst.Element element, GLib.FileStream @out);
@@ -1906,7 +1900,6 @@
 	public static weak Gst.Element parse_bin_from_description (string bin_description, bool ghost_unconnected_pads) throws GLib.Error;
 	public static GLib.Quark parse_error_quark ();
 	public static weak Gst.Element parse_launch (string pipeline_description) throws GLib.Error;
-	[NoArrayLength]
 	public static weak Gst.Element parse_launchv (string[] argv) throws GLib.Error;
 	public static void print_element_args (GLib.StringBuilder buf, int indent, Gst.Element element);
 	public static void print_pad_caps (GLib.StringBuilder buf, int indent, Gst.Pad pad);
@@ -1931,7 +1924,6 @@
 	public static bool uri_is_valid (string uri);
 	public static bool uri_protocol_is_supported (Gst.URIType type, string protocol);
 	public static bool uri_protocol_is_valid (string protocol);
-	[NoArrayLength]
 	public static void util_dump_mem (uchar[] mem, uint size);
 	public static uint64 util_gdouble_to_guint64 (double value);
 	public static weak Gst.ClockTime util_get_timestamp ();

Modified: trunk/vapi/gstreamer-audio-0.10.vapi
==============================================================================
--- trunk/vapi/gstreamer-audio-0.10.vapi	(original)
+++ trunk/vapi/gstreamer-audio-0.10.vapi	Thu Feb  7 12:18:59 2008
@@ -219,9 +219,7 @@
 		public void advance (uint advance);
 		public void clear (int segment);
 		public void clear_all ();
-		[NoArrayLength]
 		public uint commit (uint64 sample, uchar[] data, uint len);
-		[NoArrayLength]
 		public uint commit_full (uint64 sample, uchar[] data, int in_samples, int out_samples, int accum);
 		public static void debug_spec_buff (Gst.RingBufferSpec spec);
 		public static void debug_spec_caps (Gst.RingBufferSpec spec);
@@ -230,7 +228,6 @@
 		public void may_start (bool allowed);
 		public static bool parse_caps (Gst.RingBufferSpec spec, Gst.Caps caps);
 		public bool prepare_read (int segment, uchar readptr, int len);
-		[NoArrayLength]
 		public uint read (uint64 sample, uchar[] data, uint len);
 		public uint64 samples_done ();
 		public void set_callback (Gst.RingBufferCallback cb, pointer user_data);

Modified: trunk/vapi/gstreamer-check-0.10.vapi
==============================================================================
--- trunk/vapi/gstreamer-check-0.10.vapi	(original)
+++ trunk/vapi/gstreamer-check-0.10.vapi	Thu Feb  7 12:18:59 2008
@@ -11,7 +11,6 @@
 	public static weak Gst.Buffer buffer_straw_get_buffer (Gst.Element bin, Gst.Pad pad);
 	public static void buffer_straw_start_pipeline (Gst.Element bin, Gst.Pad pad);
 	public static void buffer_straw_stop_pipeline (Gst.Element bin, Gst.Pad pad);
-	[NoArrayLength]
 	public static void check_abi_list (Gst.CheckABIStruct[] list, bool have_abi_sizes);
 	public static Gst.FlowReturn check_chain_func (Gst.Pad pad, Gst.Buffer buffer);
 	public static void check_init (int argc, string argv);

Modified: trunk/vapi/gstreamer-netbuffer-0.10.vapi
==============================================================================
--- trunk/vapi/gstreamer-netbuffer-0.10.vapi	(original)
+++ trunk/vapi/gstreamer-netbuffer-0.10.vapi	Thu Feb  7 12:18:59 2008
@@ -17,14 +17,12 @@
 		public weak pointer[] _gst_reserved;
 		[CCode (cname = "gst_netaddress_get_ip4_address")]
 		public bool get_ip4_address (uint address, ushort port);
-		[NoArrayLength]
 		[CCode (cname = "gst_netaddress_get_ip6_address")]
 		public bool get_ip6_address (uchar[] address, ushort port);
 		[CCode (cname = "gst_netaddress_get_net_type")]
 		public Gst.NetType get_net_type ();
 		[CCode (cname = "gst_netaddress_set_ip4_address")]
 		public void set_ip4_address (uint address, ushort port);
-		[NoArrayLength]
 		[CCode (cname = "gst_netaddress_set_ip6_address")]
 		public void set_ip6_address (uchar[] address, ushort port);
 	}

Modified: trunk/vapi/gtk+-2.0.vapi
==============================================================================
--- trunk/vapi/gtk+-2.0.vapi	(original)
+++ trunk/vapi/gtk+-2.0.vapi	Thu Feb  7 12:18:59 2008
@@ -1461,8 +1461,7 @@
 	[CCode (copy_function = "gtk_icon_info_copy", cheader_filename = "gtk/gtk.h")]
 	public class IconInfo : GLib.Boxed {
 		public weak Gtk.IconInfo copy ();
-		[NoArrayLength]
-		public bool get_attach_points (Gdk.Point[] points, int n_points);
+		public bool get_attach_points (Gdk.Point[] points);
 		public int get_base_size ();
 		public weak Gdk.Pixbuf get_builtin_pixbuf ();
 		public weak string get_display_name ();
@@ -1475,8 +1474,7 @@
 	public class IconSet : GLib.Boxed {
 		public void add_source (Gtk.IconSource source);
 		public weak Gtk.IconSet copy ();
-		[NoArrayLength]
-		public void get_sizes (Gtk.IconSize[] sizes, int n_sizes);
+		public void get_sizes (Gtk.IconSize[] sizes);
 		public IconSet ();
 		public IconSet.from_pixbuf (Gdk.Pixbuf pixbuf);
 		public weak Gdk.Pixbuf render_icon (Gtk.Style style, Gtk.TextDirection direction, Gtk.StateType state, Gtk.IconSize size, Gtk.Widget widget, string detail);
@@ -1564,10 +1562,8 @@
 		public weak Gtk.SelectionData copy ();
 		public weak Gdk.Pixbuf get_pixbuf ();
 		public bool get_targets (out Gdk.Atom targets, int n_atoms);
-		[NoArrayLength]
 		public weak uchar[] get_text ();
 		public weak string get_uris ();
-		[NoArrayLength]
 		public void set (Gdk.Atom type, int format, uchar[] data, int length);
 		public bool set_pixbuf (Gdk.Pixbuf pixbuf);
 		public bool set_text (string str, int len);
@@ -1584,12 +1580,10 @@
 		public void add (Gdk.Atom target, uint flags, uint info);
 		public void add_image_targets (uint info, bool writable);
 		public void add_rich_text_targets (uint info, bool deserializable, Gtk.TextBuffer buffer);
-		[NoArrayLength]
 		public void add_table (Gtk.TargetEntry[] targets, uint ntargets);
 		public void add_text_targets (uint info);
 		public void add_uri_targets (uint info);
 		public bool find (Gdk.Atom target, uint info);
-		[NoArrayLength]
 		public TargetList (Gtk.TargetEntry[] targets, uint ntargets);
 		public void remove (Gdk.Atom target);
 	}
@@ -1630,7 +1624,6 @@
 		public weak Gtk.TreePath copy ();
 		public void down ();
 		public int get_depth ();
-		[NoArrayLength]
 		public weak int[] get_indices ();
 		public bool is_ancestor (Gtk.TreePath descendant);
 		public bool is_descendant (Gtk.TreePath ancestor);
@@ -1654,7 +1647,6 @@
 		public static void inserted (GLib.Object proxy, Gtk.TreePath path);
 		public TreeRowReference (Gtk.TreeModel model, Gtk.TreePath path);
 		public TreeRowReference.proxy (GLib.Object proxy, Gtk.TreeModel model, Gtk.TreePath path);
-		[NoArrayLength]
 		public static void reordered (GLib.Object proxy, Gtk.TreePath path, Gtk.TreeIter iter, int[] new_order);
 		public bool valid ();
 	}
@@ -1675,13 +1667,10 @@
 		public weak string get_website_label ();
 		public bool get_wrap_license ();
 		public AboutDialog ();
-		[NoArrayLength]
 		public void set_artists (string[] artists);
-		[NoArrayLength]
 		public void set_authors (string[] authors);
 		public void set_comments (string comments);
 		public void set_copyright (string copyright);
-		[NoArrayLength]
 		public void set_documenters (string[] documenters);
 		public static Gtk.AboutDialogActivateLinkFunc set_email_hook (Gtk.AboutDialogActivateLinkFunc func, pointer data, GLib.DestroyNotify destroy);
 		public void set_license (string license);
@@ -1827,18 +1816,12 @@
 	public class ActionGroup : GLib.Object, Gtk.Buildable {
 		public void add_action (Gtk.Action action);
 		public void add_action_with_accel (Gtk.Action action, string accelerator);
-		[NoArrayLength]
-		public void add_actions (Gtk.ActionEntry[] entries, uint n_entries, pointer user_data);
-		[NoArrayLength]
-		public void add_actions_full (Gtk.ActionEntry[] entries, uint n_entries, pointer user_data, GLib.DestroyNotify destroy);
-		[NoArrayLength]
-		public void add_radio_actions (Gtk.RadioActionEntry[] entries, uint n_entries, int value, GLib.Callback on_change, pointer user_data);
-		[NoArrayLength]
-		public void add_radio_actions_full (Gtk.RadioActionEntry[] entries, uint n_entries, int value, GLib.Callback on_change, pointer user_data, GLib.DestroyNotify destroy);
-		[NoArrayLength]
-		public void add_toggle_actions (Gtk.ToggleActionEntry[] entries, uint n_entries, pointer user_data);
-		[NoArrayLength]
-		public void add_toggle_actions_full (Gtk.ToggleActionEntry[] entries, uint n_entries, pointer user_data, GLib.DestroyNotify destroy);
+		public void add_actions (Gtk.ActionEntry[] entries, pointer user_data);
+		public void add_actions_full (Gtk.ActionEntry[] entries, pointer user_data, GLib.DestroyNotify destroy);
+		public void add_radio_actions (Gtk.RadioActionEntry[] entries, int value, GLib.Callback on_change, pointer user_data);
+		public void add_radio_actions_full (Gtk.RadioActionEntry[] entries, int value, GLib.Callback on_change, pointer user_data, GLib.DestroyNotify destroy);
+		public void add_toggle_actions (Gtk.ToggleActionEntry[] entries, pointer user_data);
+		public void add_toggle_actions_full (Gtk.ToggleActionEntry[] entries, pointer user_data, GLib.DestroyNotify destroy);
 		public weak string get_name ();
 		public bool get_sensitive ();
 		public bool get_visible ();
@@ -2410,20 +2393,16 @@
 		public void request_rich_text (Gtk.TextBuffer buffer, Gtk.ClipboardRichTextReceivedFunc callback, pointer user_data);
 		public void request_targets (Gtk.ClipboardTargetsReceivedFunc callback, pointer user_data);
 		public void request_text (Gtk.ClipboardTextReceivedFunc callback, pointer user_data);
-		[NoArrayLength]
-		public void set_can_store (Gtk.TargetEntry[] targets, int n_targets);
+		public void set_can_store (Gtk.TargetEntry[] targets);
 		public void set_image (Gdk.Pixbuf pixbuf);
 		public void set_text (string text, int len);
-		[NoArrayLength]
-		public bool set_with_data (Gtk.TargetEntry[] targets, uint n_targets, Gtk.ClipboardGetFunc get_func, Gtk.ClipboardClearFunc clear_func, pointer user_data);
-		[NoArrayLength]
-		public bool set_with_owner (Gtk.TargetEntry[] targets, uint n_targets, Gtk.ClipboardGetFunc get_func, Gtk.ClipboardClearFunc clear_func, GLib.Object owner);
+		public bool set_with_data (Gtk.TargetEntry[] targets, Gtk.ClipboardGetFunc get_func, Gtk.ClipboardClearFunc clear_func, pointer user_data);
+		public bool set_with_owner (Gtk.TargetEntry[] targets, Gtk.ClipboardGetFunc get_func, Gtk.ClipboardClearFunc clear_func, GLib.Object owner);
 		public void store ();
 		public weak Gtk.SelectionData wait_for_contents (Gdk.Atom target);
 		public weak Gdk.Pixbuf wait_for_image ();
 		public uchar wait_for_rich_text (Gtk.TextBuffer buffer, out Gdk.Atom format, ulong length);
-		[NoArrayLength]
-		public bool wait_for_targets (Gdk.Atom[] targets, int n_targets);
+		public bool wait_for_targets (Gdk.Atom[] targets);
 		public weak string wait_for_text ();
 		public bool wait_is_image_available ();
 		public bool wait_is_rich_text_available (Gtk.TextBuffer buffer);
@@ -2459,10 +2438,8 @@
 		public void get_previous_color (out Gdk.Color color);
 		public bool is_adjusting ();
 		public ColorSelection ();
-		[NoArrayLength]
-		public static bool palette_from_string (string str, Gdk.Color[] colors, int n_colors);
-		[NoArrayLength]
-		public static weak string palette_to_string (Gdk.Color[] colors, int n_colors);
+		public static bool palette_from_string (string str, Gdk.Color[] colors);
+		public static weak string palette_to_string (Gdk.Color[] colors);
 		public static Gtk.ColorSelectionChangePaletteWithScreenFunc set_change_palette_with_screen_hook (Gtk.ColorSelectionChangePaletteWithScreenFunc func);
 		public void set_current_alpha (ushort alpha);
 		public void set_current_color (Gdk.Color color);
@@ -2609,14 +2586,12 @@
 		public int num_ctlpoints;
 		[NoArrayLength]
 		public weak float[] ctlpoint;
-		[NoArrayLength]
 		public void get_vector (int veclen, float[] vector);
 		public Curve ();
 		public void reset ();
 		public void set_curve_type (Gtk.CurveType type);
 		public void set_gamma (float gamma_);
 		public void set_range (float min_x, float max_x, float min_y, float max_y);
-		[NoArrayLength]
 		public void set_vector (int veclen, float[] vector);
 		[NoAccessorMethod]
 		public weak Gtk.CurveType curve_type { get; set; }
@@ -3086,7 +3061,6 @@
 	public class IconTheme : GLib.Object {
 		public static void add_builtin_icon (string icon_name, int size, Gdk.Pixbuf pixbuf);
 		public void append_search_path (string path);
-		[NoArrayLength]
 		public weak Gtk.IconInfo choose_icon (string[] icon_names, int size, Gtk.IconLookupFlags flags);
 		public static GLib.Quark error_quark ();
 		public static weak Gtk.IconTheme get_default ();
@@ -3104,7 +3078,6 @@
 		public bool rescan_if_needed ();
 		public void set_custom_theme (string theme_name);
 		public void set_screen (Gdk.Screen screen);
-		[NoArrayLength]
 		public void set_search_path (string[] path, int n_elements);
 		public signal void changed ();
 	}
@@ -3112,10 +3085,8 @@
 	public class IconView : Gtk.Container, Atk.Implementor, Gtk.Buildable, Gtk.CellLayout {
 		public void convert_widget_to_bin_window_coords (int wx, int wy, int bx, int by);
 		public weak Gdk.Pixmap create_drag_icon (Gtk.TreePath path);
-		[NoArrayLength]
-		public void enable_model_drag_dest (Gtk.TargetEntry[] targets, int n_targets, Gdk.DragAction actions);
-		[NoArrayLength]
-		public void enable_model_drag_source (Gdk.ModifierType start_button_mask, Gtk.TargetEntry[] targets, int n_targets, Gdk.DragAction actions);
+		public void enable_model_drag_dest (Gtk.TargetEntry[] targets, Gdk.DragAction actions);
+		public void enable_model_drag_source (Gdk.ModifierType start_button_mask, Gtk.TargetEntry[] targets, Gdk.DragAction actions);
 		public int get_column_spacing ();
 		public int get_columns ();
 		public bool get_cursor (out weak Gtk.TreePath path, out weak Gtk.CellRenderer cell);
@@ -3422,13 +3393,11 @@
 		public void insert_before (out Gtk.TreeIter iter, Gtk.TreeIter? sibling);
 		[CCode (sentinel = "-1")]
 		public void insert_with_values (out Gtk.TreeIter iter, int position, ...);
-		[NoArrayLength]
-		public void insert_with_valuesv (out Gtk.TreeIter iter, int position, int columns, GLib.Value[] values, int n_values);
+		public void insert_with_valuesv (out Gtk.TreeIter iter, int position, int columns, GLib.Value[] values);
 		public bool iter_is_valid (Gtk.TreeIter iter);
 		public void move_after (Gtk.TreeIter iter, Gtk.TreeIter? position);
 		public void move_before (Gtk.TreeIter iter, Gtk.TreeIter? position);
 		public ListStore (int n_columns, ...);
-		[NoArrayLength]
 		[CCode (cname = "gtk_list_store_newv")]
 		public ListStore.newv (int n_columns, GLib.Type[] types);
 		public void prepend (out Gtk.TreeIter iter);
@@ -3436,12 +3405,10 @@
 		public void reorder (int new_order);
 		[CCode (sentinel = "-1")]
 		public void set (Gtk.TreeIter iter, ...);
-		[NoArrayLength]
 		public void set_column_types (int n_columns, GLib.Type[] types);
 		public void set_valist (Gtk.TreeIter iter, pointer var_args);
 		public void set_value (Gtk.TreeIter iter, int column, GLib.Value value);
-		[NoArrayLength]
-		public void set_valuesv (Gtk.TreeIter iter, int columns, GLib.Value[] values, int n_values);
+		public void set_valuesv (Gtk.TreeIter iter, int columns, GLib.Value[] values);
 		public void swap (Gtk.TreeIter a, Gtk.TreeIter b);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
@@ -4245,10 +4212,8 @@
 		public weak Gtk.Widget minus_button;
 		public weak Gtk.Adjustment get_adjustment ();
 		public double get_value ();
-		[NoArrayLength]
 		public ScaleButton (Gtk.IconSize size, double min, double max, double step, string[] icons);
 		public void set_adjustment (Gtk.Adjustment adjustment);
-		[NoArrayLength]
 		public void set_icons (string[] icons);
 		public void set_value (double value);
 		public weak Gtk.Adjustment adjustment { get; set; }
@@ -5286,7 +5251,6 @@
 		public weak Gtk.TreeModel get_model ();
 		public TreeModelFilter (Gtk.TreeModel child_model, Gtk.TreePath root);
 		public void refilter ();
-		[NoArrayLength]
 		public void set_modify_func (int n_columns, GLib.Type[] types, Gtk.TreeModelFilterModifyFunc func, pointer data, Gtk.DestroyNotify destroy);
 		public void set_visible_column (int column);
 		public void set_visible_func (Gtk.TreeModelFilterVisibleFunc func, pointer data, Gtk.DestroyNotify destroy);
@@ -5375,15 +5339,13 @@
 		public void insert_before (out Gtk.TreeIter iter, Gtk.TreeIter? parent, Gtk.TreeIter? sibling);
 		[CCode (sentinel = "-1")]
 		public void insert_with_values (out Gtk.TreeIter iter, Gtk.TreeIter? parent, int position, ...);
-		[NoArrayLength]
-		public void insert_with_valuesv (out Gtk.TreeIter iter, Gtk.TreeIter? parent, int position, int columns, GLib.Value[] values, int n_values);
+		public void insert_with_valuesv (out Gtk.TreeIter iter, Gtk.TreeIter? parent, int position, int columns, GLib.Value[] values);
 		public bool is_ancestor (Gtk.TreeIter iter, Gtk.TreeIter descendant);
 		public int iter_depth (Gtk.TreeIter iter);
 		public bool iter_is_valid (Gtk.TreeIter iter);
 		public void move_after (Gtk.TreeIter iter, Gtk.TreeIter? position);
 		public void move_before (Gtk.TreeIter iter, Gtk.TreeIter? position);
 		public TreeStore (int n_columns, ...);
-		[NoArrayLength]
 		[CCode (cname = "gtk_tree_store_newv")]
 		public TreeStore.newv (int n_columns, GLib.Type[] types);
 		public void prepend (out Gtk.TreeIter iter, Gtk.TreeIter? parent);
@@ -5391,12 +5353,10 @@
 		public void reorder (Gtk.TreeIter? parent, int new_order);
 		[CCode (sentinel = "-1")]
 		public void set (Gtk.TreeIter iter, ...);
-		[NoArrayLength]
 		public void set_column_types (int n_columns, GLib.Type[] types);
 		public void set_valist (Gtk.TreeIter iter, pointer var_args);
 		public void set_value (Gtk.TreeIter iter, int column, GLib.Value value);
-		[NoArrayLength]
-		public void set_valuesv (Gtk.TreeIter iter, int columns, GLib.Value[] values, int n_values);
+		public void set_valuesv (Gtk.TreeIter iter, int columns, GLib.Value[] values);
 		public void swap (Gtk.TreeIter a, Gtk.TreeIter b);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
@@ -5412,10 +5372,8 @@
 		public void convert_widget_to_bin_window_coords (int wx, int wy, int bx, int by);
 		public void convert_widget_to_tree_coords (int wx, int wy, int tx, int ty);
 		public weak Gdk.Pixmap create_row_drag_icon (Gtk.TreePath path);
-		[NoArrayLength]
-		public void enable_model_drag_dest (Gtk.TargetEntry[] targets, int n_targets, Gdk.DragAction actions);
-		[NoArrayLength]
-		public void enable_model_drag_source (Gdk.ModifierType start_button_mask, Gtk.TargetEntry[] targets, int n_targets, Gdk.DragAction actions);
+		public void enable_model_drag_dest (Gtk.TargetEntry[] targets, Gdk.DragAction actions);
+		public void enable_model_drag_source (Gdk.ModifierType start_button_mask, Gtk.TargetEntry[] targets, Gdk.DragAction actions);
 		public void expand_all ();
 		public bool expand_row (Gtk.TreePath path, bool open_all);
 		public void expand_to_path (Gtk.TreePath path);
@@ -6532,8 +6490,7 @@
 	public static Gdk.Atom drag_dest_find_target (Gtk.Widget widget, Gdk.DragContext context, Gtk.TargetList target_list);
 	public static weak Gtk.TargetList drag_dest_get_target_list (Gtk.Widget widget);
 	public static bool drag_dest_get_track_motion (Gtk.Widget widget);
-	[NoArrayLength]
-	public static void drag_dest_set (Gtk.Widget widget, Gtk.DestDefaults flags, Gtk.TargetEntry[] targets, int n_targets, Gdk.DragAction actions);
+	public static void drag_dest_set (Gtk.Widget widget, Gtk.DestDefaults flags, Gtk.TargetEntry[] targets, Gdk.DragAction actions);
 	public static void drag_dest_set_proxy (Gtk.Widget widget, Gdk.Window proxy_window, Gdk.DragProtocol protocol, bool use_coordinates);
 	public static void drag_dest_set_target_list (Gtk.Widget widget, Gtk.TargetList target_list);
 	public static void drag_dest_set_track_motion (Gtk.Widget widget, bool track_motion);
@@ -6552,8 +6509,7 @@
 	public static void drag_source_add_text_targets (Gtk.Widget widget);
 	public static void drag_source_add_uri_targets (Gtk.Widget widget);
 	public static weak Gtk.TargetList drag_source_get_target_list (Gtk.Widget widget);
-	[NoArrayLength]
-	public static void drag_source_set (Gtk.Widget widget, Gdk.ModifierType start_button_mask, Gtk.TargetEntry[] targets, int n_targets, Gdk.DragAction actions);
+	public static void drag_source_set (Gtk.Widget widget, Gdk.ModifierType start_button_mask, Gtk.TargetEntry[] targets, Gdk.DragAction actions);
 	public static void drag_source_set_icon (Gtk.Widget widget, Gdk.Colormap colormap, Gdk.Pixmap pixmap, Gdk.Bitmap mask);
 	public static void drag_source_set_icon_name (Gtk.Widget widget, string icon_name);
 	public static void drag_source_set_icon_pixbuf (Gtk.Widget widget, Gdk.Pixbuf pixbuf);
@@ -6582,9 +6538,7 @@
 	public static void icon_size_register_alias (string alias, Gtk.IconSize target);
 	public static GLib.Type identifier_get_type ();
 	public static void init_add (Gtk.Function function, pointer data);
-	[NoArrayLength]
 	public static bool init_check (int argc, string[] argv);
-	[NoArrayLength]
 	public static bool init_with_args (int argc, string[] argv, string parameter_string, GLib.OptionEntry[] entries, string translation_domain) throws GLib.Error;
 	public static uint key_snooper_install (Gtk.KeySnoopFunc snooper, pointer func_data);
 	public static void key_snooper_remove (uint snooper_handler_id);
@@ -6614,7 +6568,6 @@
 	public static void paint_slider (Gtk.Style style, Gdk.Window window, Gtk.StateType state_type, Gtk.ShadowType shadow_type, Gdk.Rectangle area, Gtk.Widget widget, string detail, int x, int y, int width, int height, Gtk.Orientation orientation);
 	public static void paint_tab (Gtk.Style style, Gdk.Window window, Gtk.StateType state_type, Gtk.ShadowType shadow_type, Gdk.Rectangle area, Gtk.Widget widget, string detail, int x, int y, int width, int height);
 	public static void paint_vline (Gtk.Style style, Gdk.Window window, Gtk.StateType state_type, Gdk.Rectangle area, Gtk.Widget widget, string detail, int y1_, int y2_, int x);
-	[NoArrayLength]
 	public static bool parse_args (int argc, string[] argv);
 	public static GLib.Quark print_error_quark ();
 	public static weak Gtk.PageSetup print_run_page_setup_dialog (Gtk.Window parent, Gtk.PageSetup page_setup, Gtk.PrintSettings settings);
@@ -6646,7 +6599,6 @@
 	public static weak GLib.Scanner rc_scanner_new ();
 	public static void rc_set_default_files (string filenames);
 	public static void selection_add_target (Gtk.Widget widget, Gdk.Atom selection, Gdk.Atom target, uint info);
-	[NoArrayLength]
 	public static void selection_add_targets (Gtk.Widget widget, Gdk.Atom selection, Gtk.TargetEntry[] targets, uint ntargets);
 	public static void selection_clear_targets (Gtk.Widget widget, Gdk.Atom selection);
 	public static bool selection_convert (Gtk.Widget widget, Gdk.Atom selection, Gdk.Atom target, uint time_);
@@ -6655,24 +6607,17 @@
 	public static void selection_remove_all (Gtk.Widget widget);
 	public static weak string set_locale ();
 	public static void show_about_dialog (Gtk.Window parent, ...);
-	[NoArrayLength]
-	public static void stock_add (Gtk.StockItem[] items, uint n_items);
-	[NoArrayLength]
-	public static void stock_add_static (Gtk.StockItem[] items, uint n_items);
+	public static void stock_add (Gtk.StockItem[] items);
+	public static void stock_add_static (Gtk.StockItem[] items);
 	public static weak GLib.SList stock_list_ids ();
 	public static bool stock_lookup (string stock_id, Gtk.StockItem item);
 	public static void stock_set_translate_func (string domain, Gtk.TranslateFunc func, pointer data, Gtk.DestroyNotify notify);
-	[NoArrayLength]
-	public static void target_table_free (Gtk.TargetEntry[] targets, int n_targets);
+	public static void target_table_free (Gtk.TargetEntry[] targets);
 	public static Gtk.TargetEntry target_table_new_from_list (Gtk.TargetList list, int n_targets);
-	[NoArrayLength]
-	public static bool targets_include_image (Gdk.Atom[] targets, int n_targets, bool writable);
-	[NoArrayLength]
-	public static bool targets_include_rich_text (Gdk.Atom[] targets, int n_targets, Gtk.TextBuffer buffer);
-	[NoArrayLength]
-	public static bool targets_include_text (Gdk.Atom[] targets, int n_targets);
-	[NoArrayLength]
-	public static bool targets_include_uri (Gdk.Atom[] targets, int n_targets);
+	public static bool targets_include_image (Gdk.Atom[] targets, bool writable);
+	public static bool targets_include_rich_text (Gdk.Atom[] targets, Gtk.TextBuffer buffer);
+	public static bool targets_include_text (Gdk.Atom[] targets);
+	public static bool targets_include_uri (Gdk.Atom[] targets);
 	public static bool tree_get_row_drag_data (Gtk.SelectionData selection_data, out weak Gtk.TreeModel tree_model, out weak Gtk.TreePath path);
 	public static bool tree_set_row_drag_data (Gtk.SelectionData selection_data, Gtk.TreeModel tree_model, Gtk.TreePath path);
 }

Modified: trunk/vapi/libgnome-2.0.vapi
==============================================================================
--- trunk/vapi/libgnome-2.0.vapi	(original)
+++ trunk/vapi/libgnome-2.0.vapi	Thu Feb  7 12:18:59 2008
@@ -72,11 +72,8 @@
 		public weak string get_app_id ();
 		public weak string get_app_version ();
 		public weak string get_human_readable_name ();
-		[NoArrayLength]
 		public static weak Gnome.Program init (string app_id, string app_version, Gnome.ModuleInfo module_info, int argc, string[] argv, ...);
-		[NoArrayLength]
 		public static weak Gnome.Program init_paramv (GLib.Type type, string app_id, string app_version, Gnome.ModuleInfo module_info, int argc, string[] argv, uint nparams, GLib.Parameter params);
-		[NoArrayLength]
 		public static weak Gnome.Program initv (GLib.Type type, string app_id, string app_version, Gnome.ModuleInfo module_info, int argc, string[] argv, string first_property_name, pointer args);
 		public static uint install_property (pointer pclass, GLib.ObjectGetPropertyFunc get_fn, GLib.ObjectSetPropertyFunc set_fn, GLib.ParamSpec pspec);
 		public weak string locate_file (Gnome.FileDomain domain, string file_name, bool only_if_exists, GLib.SList ret_locations);
@@ -148,13 +145,9 @@
 	public const string PARAM_POPT_TABLE;
 	public static weak Gnome.ModuleInfo bonobo_module_info_get ();
 	public static void clearenv ();
-	[NoArrayLength]
 	public static int execute_async (string dir, int argc, string[] argv);
-	[NoArrayLength]
 	public static int execute_async_fds (string dir, int argc, string[] argv, bool close_fds);
-	[NoArrayLength]
 	public static int execute_async_with_env (string dir, int argc, string[] argv, int envc, string[] envv);
-	[NoArrayLength]
 	public static int execute_async_with_env_fds (string dir, int argc, string[] argv, int envc, string[] envv, bool close_fds);
 	public static int execute_shell (string dir, string commandline);
 	public static int execute_shell_fds (string dir, string commandline, bool close_fds);
@@ -183,9 +176,7 @@
 	public static void sound_shutdown ();
 	public static void triggers_add_trigger (Gnome.Trigger nt);
 	public static void triggers_do (string msg, string level);
-	[NoArrayLength]
 	public static void triggers_vadd_trigger (Gnome.Trigger nt, string[] supinfo);
-	[NoArrayLength]
 	public static void triggers_vdo (string msg, string level, string[] supinfo);
 	public static void unsetenv (string name);
 	public static GLib.Quark url_error_quark ();

Modified: trunk/vapi/libgnomeui-2.0.vapi
==============================================================================
--- trunk/vapi/libgnomeui-2.0.vapi	(original)
+++ trunk/vapi/libgnomeui-2.0.vapi	Thu Feb  7 12:18:59 2008
@@ -326,10 +326,8 @@
 		public void request_save (Gnome.SaveStyle save_style, bool shutdown, Gnome.InteractStyle interact_style, bool fast, bool global);
 		public void save_any_dialog (Gtk.Dialog dialog);
 		public void save_error_dialog (Gtk.Dialog dialog);
-		[NoArrayLength]
 		public void set_clone_command (int argc, string[] argv);
 		public void set_current_directory (string dir);
-		[NoArrayLength]
 		public void set_discard_command (int argc, string[] argv);
 		public void set_environment (string name, string value);
 		public void set_global_config_prefix (string prefix);
@@ -337,12 +335,9 @@
 		public void set_priority (uint priority);
 		public void set_process_id (int pid);
 		public void set_program (string program);
-		[NoArrayLength]
 		public void set_resign_command (int argc, string[] argv);
-		[NoArrayLength]
 		public void set_restart_command (int argc, string[] argv);
 		public void set_restart_style (Gnome.RestartStyle style);
-		[NoArrayLength]
 		public void set_shutdown_command (int argc, string[] argv);
 		public void set_user_id (string id);
 		[HasEmitter]

Modified: trunk/vapi/libnotify.vapi
==============================================================================
--- trunk/vapi/libnotify.vapi	(original)
+++ trunk/vapi/libnotify.vapi	Thu Feb  7 12:18:59 2008
@@ -21,7 +21,6 @@
 		public void set_category (string category);
 		public void set_geometry_hints (Gdk.Screen screen, int x, int y);
 		public void set_hint_byte (string key, uchar value);
-		[NoArrayLength]
 		public void set_hint_byte_array (string key, uchar[] value, ulong len);
 		public void set_hint_double (string key, double value);
 		public void set_hint_int32 (string key, int value);

Modified: trunk/vapi/libsoup-2.2.vapi
==============================================================================
--- trunk/vapi/libsoup-2.2.vapi	(original)
+++ trunk/vapi/libsoup-2.2.vapi	Thu Feb  7 12:18:59 2008
@@ -602,12 +602,9 @@
 	public static weak GLib.Source add_idle (GLib.MainContext async_context, GLib.SourceFunc function, pointer data);
 	public static weak GLib.Source add_timeout (GLib.MainContext async_context, uint interval, GLib.SourceFunc function, pointer data);
 	public static weak string base64_decode (string text, int out_len);
-	[NoArrayLength]
 	public static int base64_decode_step (uchar[] @in, int len, uchar[] @out, int state, uint save);
 	public static weak string base64_encode (string text, int len);
-	[NoArrayLength]
 	public static int base64_encode_close (uchar[] @in, int inlen, bool break_lines, uchar[] @out, int state, int save);
-	[NoArrayLength]
 	public static int base64_encode_step (uchar[] @in, int len, bool break_lines, uchar[] @out, int state, int save);
 	public static weak string date_generate (ulong when);
 	public static ulong date_iso8601_parse (string timestamp);

Modified: trunk/vapi/libsoup-2.4.vapi
==============================================================================
--- trunk/vapi/libsoup-2.4.vapi	(original)
+++ trunk/vapi/libsoup-2.4.vapi	Thu Feb  7 12:18:59 2008
@@ -603,8 +603,7 @@
 	public static bool value_hash_lookup (GLib.HashTable hash, string key, GLib.Type type);
 	public static weak GLib.HashTable value_hash_new ();
 	public static weak string xmlrpc_build_fault (int fault_code, string fault_format);
-	[NoArrayLength]
-	public static weak string xmlrpc_build_method_call (string method_name, GLib.Value[] params, int n_params);
+	public static weak string xmlrpc_build_method_call (string method_name, GLib.Value[] params);
 	public static weak string xmlrpc_build_method_response (GLib.Value value);
 	public static GLib.Quark xmlrpc_error_quark ();
 	public static bool xmlrpc_extract_method_call (string method_call, int length, out weak string method_name);

Modified: trunk/vapi/pango.vapi
==============================================================================
--- trunk/vapi/pango.vapi	(original)
+++ trunk/vapi/pango.vapi	Thu Feb  7 12:18:59 2008
@@ -315,14 +315,12 @@
 	[CCode (ref_function = "pango_coverage_ref", unref_function = "pango_coverage_unref", cheader_filename = "pango/pango.h")]
 	public class Coverage {
 		public weak Pango.Coverage copy ();
-		[NoArrayLength]
-		public static weak Pango.Coverage from_bytes (uchar[] bytes, int n_bytes);
+		public static weak Pango.Coverage from_bytes (uchar[] bytes);
 		public Pango.CoverageLevel get (int index_);
 		public void max (Pango.Coverage other);
 		public Coverage ();
 		public void set (int index_, Pango.CoverageLevel level);
-		[NoArrayLength]
-		public void to_bytes (uchar[] bytes, int n_bytes);
+		public void to_bytes (uchar[] bytes);
 	}
 	[CCode (cheader_filename = "pango/pango.h")]
 	public class EngineLang {
@@ -425,7 +423,6 @@
 		public weak Pango.GlyphString glyphs;
 		public weak GLib.SList apply_attrs (string text, Pango.AttrList list);
 		public weak Pango.GlyphItem copy ();
-		[NoArrayLength]
 		public void letter_space (string text, Pango.LogAttr[] log_attrs, int letter_spacing);
 		public weak Pango.GlyphItem split (string text, int split_index);
 	}
@@ -487,8 +484,7 @@
 		public uint resolved_dir;
 		public void get_extents (out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
 		public void get_pixel_extents (out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
-		[NoArrayLength]
-		public void get_x_ranges (int start_index, int end_index, int[] ranges, int n_ranges);
+		public void get_x_ranges (int start_index, int end_index, int[] ranges);
 		public void index_to_x (int index_, bool trailing, int x_pos);
 		public bool x_to_index (int x_pos, int index_, int trailing);
 	}
@@ -515,8 +511,7 @@
 		public weak Pango.Language get_language ();
 		public Pango.Matrix get_matrix ();
 		public weak Pango.FontMetrics get_metrics (Pango.FontDescription desc, Pango.Language language);
-		[NoArrayLength]
-		public void list_families (Pango.FontFamily[] families, int n_families);
+		public void list_families (Pango.FontFamily[] families);
 		public weak Pango.Font load_font (Pango.FontDescription desc);
 		public weak Pango.Fontset load_fontset (Pango.FontDescription desc, Pango.Language language);
 		public void set_base_dir (Pango.Direction direction);
@@ -530,8 +525,7 @@
 	public class Font : GLib.Object {
 		public weak Pango.FontDescription describe ();
 		public weak Pango.FontDescription describe_with_absolute_size ();
-		[NoArrayLength]
-		public static void descriptions_free (Pango.FontDescription[] descs, int n_descs);
+		public static void descriptions_free (Pango.FontDescription[] descs);
 		public weak Pango.EngineShape find_shaper (Pango.Language language, uint ch);
 		public weak Pango.Coverage get_coverage (Pango.Language language);
 		public weak Pango.FontMap get_font_map ();
@@ -543,20 +537,17 @@
 		public weak Pango.FontDescription describe ();
 		public weak string get_face_name ();
 		public bool is_synthesized ();
-		[NoArrayLength]
-		public void list_sizes (int[] sizes, int n_sizes);
+		public void list_sizes (int[] sizes);
 	}
 	[CCode (cheader_filename = "pango/pango.h")]
 	public class FontFamily : GLib.Object {
 		public weak string get_name ();
 		public bool is_monospace ();
-		[NoArrayLength]
-		public void list_faces (Pango.FontFace[] faces, int n_faces);
+		public void list_faces (Pango.FontFace[] faces);
 	}
 	[CCode (cheader_filename = "pango/pango.h")]
 	public class FontMap : GLib.Object {
-		[NoArrayLength]
-		public void list_families (Pango.FontFamily[] families, int n_families);
+		public void list_families (Pango.FontFamily[] families);
 		public weak Pango.Font load_font (Pango.Context context, Pango.FontDescription desc);
 		public weak Pango.Fontset load_fontset (Pango.Context context, Pango.FontDescription desc, Pango.Language language);
 	}
@@ -587,8 +578,7 @@
 		public weak Pango.LayoutLine get_line_readonly (int line);
 		public weak GLib.SList get_lines ();
 		public weak GLib.SList get_lines_readonly ();
-		[NoArrayLength]
-		public void get_log_attrs (Pango.LogAttr[] attrs, int n_attrs);
+		public void get_log_attrs (Pango.LogAttr[] attrs);
 		public void get_pixel_extents (out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
 		public void get_pixel_size (int width, int height);
 		public bool get_single_paragraph_mode ();
@@ -738,12 +728,10 @@
 	public static weak Pango.Attribute attr_underline_new (Pango.Underline underline);
 	public static weak Pango.Attribute attr_variant_new (Pango.Variant variant);
 	public static weak Pango.Attribute attr_weight_new (Pango.Weight weight);
-	[NoArrayLength]
 	public static void @break (string text, int length, Pango.Analysis analysis, Pango.LogAttr[] attrs, int attrs_len);
 	public static void extents_to_pixels (ref Pango.Rectangle inclusive, ref Pango.Rectangle nearest);
 	public static Pango.Direction find_base_dir (string text, int length);
 	public static void find_paragraph_boundary (string text, int length, int paragraph_delimiter_index, int next_paragraph_start);
-	[NoArrayLength]
 	public static void get_log_attrs (string text, int length, int level, Pango.Language language, Pango.LogAttr[] log_attrs, int attrs_len);
 	public static Pango.Gravity gravity_get_for_matrix (Pango.Matrix matrix);
 	public static Pango.Gravity gravity_get_for_script (Pango.Script script, Pango.Gravity base_gravity, Pango.GravityHint hint);

Modified: trunk/vapi/vte.vapi
==============================================================================
--- trunk/vapi/vte.vapi	(original)
+++ trunk/vapi/vte.vapi	Thu Feb  7 12:18:59 2008
@@ -48,9 +48,7 @@
 		public void feed (string data, long length);
 		public void feed_child (string text, long length);
 		public void feed_child_binary (string data, long length);
-		[NoArrayLength]
 		public int fork_command (string command, string[] argv, string[] envv, string directory, bool lastlog, bool utmp, bool wtmp);
-		[NoArrayLength]
 		public int forkpty (string[] envv, string directory, bool lastlog, bool utmp, bool wtmp);
 		public weak Gtk.Adjustment get_adjustment ();
 		public bool get_allow_bold ();
@@ -104,7 +102,6 @@
 		public void set_color_dim (Gdk.Color dim);
 		public void set_color_foreground (Gdk.Color foreground);
 		public void set_color_highlight (Gdk.Color highlight_background);
-		[NoArrayLength]
 		public void set_colors (Gdk.Color foreground, Gdk.Color background, Gdk.Color[] palette, long palette_size);
 		public void set_cursor_blinks (bool blink);
 		public void set_default_colors ();

Modified: trunk/vapigen/valagidlparser.vala
==============================================================================
--- trunk/vapigen/valagidlparser.vala	(original)
+++ trunk/vapigen/valagidlparser.vala	Thu Feb  7 12:18:59 2008
@@ -1165,9 +1165,6 @@
 		}
 		m.access = SymbolAccessibility.PUBLIC;
 
-		// GIDL generator can't provide array parameter information yet
-		m.no_array_length = true;
-		
 		if (current_type_symbol_set != null) {
 			current_type_symbol_set.add (name);
 		}
@@ -1256,8 +1253,8 @@
 			}
 			var param_type = parse_param (param);
 			var p = new FormalParameter (param_name, param_type);
-			m.add_parameter (p);
 
+			bool hide_param = false;
 			var attributes = get_attributes ("%s.%s".printf (symbol, param_node.name));
 			if (attributes != null) {
 				foreach (string attr in attributes) {
@@ -1284,6 +1281,12 @@
 						if (eval (nv[1]) == "1") {
 							param_type.transfers_ownership = true;
 						}
+					} else if (nv[0] == "hidden") {
+						if (eval (nv[1]) == "1") {
+							hide_param = true;
+						}
+					} else if (nv[0] == "array_length_pos") {
+						p.carray_length_parameter_position = eval (nv[1]).to_double ();
 					}
 				}
 			}
@@ -1292,6 +1295,13 @@
 				// last_param is array, p is array length
 				last_param_type.array_rank = 1;
 				last_param_type.is_out = false;
+
+				// hide array length param
+				hide_param = true;
+			}
+
+			if (!hide_param) {
+				m.add_parameter (p);
 			}
 
 			last_param = p;



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