]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
use correct type cname in array creation expression, don't assume that all
authorJürg Billeter <j@bitron.ch>
Sun, 4 Feb 2007 13:00:08 +0000 (13:00 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Sun, 4 Feb 2007 13:00:08 +0000 (13:00 +0000)
2007-02-04  Jürg Billeter  <j@bitron.ch>

* vala/valacodegenerator.vala: use correct type cname in array creation
  expression, don't assume that all string arrays own their content

svn path=/trunk/; revision=186

vala/ChangeLog
vala/vala/valacodegenerator.vala

index fcfd598520de9ed689a82132dc70c5e18c37ad78..0cf6b55ed28600e687614b9b43ccb6cedcede2d5 100644 (file)
@@ -1,3 +1,8 @@
+2007-02-04  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valacodegenerator.vala: use correct type cname in array creation
+         expression, don't assume that all string arrays own their content
+
 2007-02-04  Jürg Billeter  <j@bitron.ch>
 
        * vala/parser.y: fix crash when parsing array creation expression
index 0acf6362b4127cbb2fc96717ec6eef984bc52267..0f2b105266000613ea29e83bc352cc5a1efa2c78 100644 (file)
@@ -1919,10 +1919,7 @@ public class Vala.CodeGenerator : CodeVisitor {
                } else {
                        unref_function = type.data_type.get_free_function ();
                }
-       
-               if (type.data_type is Array && ((Array) type.data_type).element_type.name == "string") {
-                       unref_function = "g_strfreev";
-               }
+
                var ccall = new CCodeFunctionCall (new CCodeIdentifier (unref_function));
                ccall.add_argument (cvar);
                
@@ -2479,10 +2476,10 @@ public class Vala.CodeGenerator : CodeVisitor {
                }
                
                var sizes = expr.get_sizes ();
-               var gnew = new CCodeFunctionCall (new CCodeConstant ("g_new0"));
-               gnew.add_argument (new CCodeIdentifier (expr.element_type.data_type.get_cname ()));
+               var gnew = new CCodeFunctionCall (new CCodeIdentifier ("g_new0"));
+               gnew.add_argument (new CCodeIdentifier (expr.element_type.get_cname ()));
                /* FIXME: had to add Expression cast due to possible compiler bug */
-               gnew.add_argument ((CCodeExpression)((Expression)sizes.first ().data).ccodenode);
+               gnew.add_argument ((CCodeExpression) ((Expression) sizes.first ().data).ccodenode);
                
                if (expr.initializer_list != null) {
                        var ce = new CCodeCommaExpression ();