From: Jürg Billeter Date: Sat, 21 May 2011 15:44:34 +0000 (+0200) Subject: glib-2.0: Simplify creation of GLib.Array X-Git-Tag: 0.13.0~85 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c4926de991f6f1d6cb94e35b4e227aec31461b29;p=thirdparty%2Fvala.git glib-2.0: Simplify creation of GLib.Array --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index 87818a19b..b77cd8065 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -4114,6 +4114,13 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { param = params_it.get (); ellipsis = param.ellipsis; if (!ellipsis) { + // g_array_new: element size + if (cl == garray_type && param.name == "element_size") { + var csizeof = new CCodeFunctionCall (new CCodeIdentifier ("sizeof")); + csizeof.add_argument (new CCodeIdentifier (expr.type_reference.get_type_arguments ().get (0).get_cname ())); + cexpr = csizeof; + } + if (!param.no_array_length && param.variable_type is ArrayType) { var array_type = (ArrayType) param.variable_type; for (int dim = 1; dim <= array_type.rank; dim++) { @@ -4159,7 +4166,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { ellipsis = true; break; } - + if (param.initializer == null) { Report.error (expr.source_reference, "no default expression for argument %d".printf (i)); return; diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi index 815654afa..3299b249f 100644 --- a/vapi/glib-2.0.vapi +++ b/vapi/glib-2.0.vapi @@ -4177,7 +4177,7 @@ namespace GLib { [CCode (cname = "len")] public uint length; - public Array (bool zero_terminated, bool clear, ulong element_size); + public Array (bool zero_terminated = true, bool clear = true, ulong element_size = 0); [CCode (cname = "g_array_sized_new")] public Array.sized (bool zero_terminated, bool clear, ulong element_size, uint reserved_size); public void append_val (owned G value);