]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
glib-2.0: Simplify creation of GLib.Array
authorJürg Billeter <j@bitron.ch>
Sat, 21 May 2011 15:44:34 +0000 (17:44 +0200)
committerJürg Billeter <j@bitron.ch>
Sat, 21 May 2011 15:44:34 +0000 (17:44 +0200)
codegen/valaccodebasemodule.vala
vapi/glib-2.0.vapi

index 87818a19b1b96cdfb48cb5ca7a592017ed5fd9b5..b77cd806551b9bec2e35e24c18c6d603b4924875 100644 (file)
@@ -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;
index 815654afa8a56c8bbb72c049dca8e01c322dc103..3299b249ff4cdd022d66b48881ac0bcc001f3f58 100644 (file)
@@ -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);