]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix (!) non-null cast for structs
authorJürg Billeter <j@bitron.ch>
Wed, 10 Mar 2010 06:52:06 +0000 (07:52 +0100)
committerJürg Billeter <j@bitron.ch>
Wed, 10 Mar 2010 06:52:06 +0000 (07:52 +0100)
Fixes bug 612380.

codegen/valaccodebasemodule.vala
vala/valacastexpression.vala

index 32a43cb1b962a28b554e9296e274a7e8852eb7f4..42a1fc75e80af6058b98dabdbf9ac4cdcd1e7871 100644 (file)
@@ -4311,12 +4311,6 @@ internal class Vala.CCodeBaseModule : CCodeModule {
        }
 
        public override void visit_cast_expression (CastExpression expr) {
-               if (expr.is_non_null_cast) {
-                       // TODO add NULL runtime check
-                       expr.ccodenode = expr.inner.ccodenode;
-                       return;
-               }
-
                var valuecast = try_cast_value_to_type ((CCodeExpression) expr.inner.ccodenode, expr.inner.value_type, expr.type_reference, expr);
                if (valuecast != null) {
                        expr.ccodenode = valuecast;
index 864c409258546e3fb1abcc0e4602ab68462b9f84..83b7f41e9ee8fec4466dda8bc717437113bfe3c2 100644 (file)
@@ -1,6 +1,6 @@
 /* valacastexpression.vala
  *
- * Copyright (C) 2006-2009  Jürg Billeter
+ * Copyright (C) 2006-2010  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
@@ -127,12 +127,8 @@ public class Vala.CastExpression : Expression {
 
                if (is_non_null_cast) {
                        // (!) non-null cast
-                       value_type = inner.value_type.copy ();
-                       value_type.nullable = false;
-
-                       inner.target_type = inner.value_type.copy ();
-
-                       return !error;
+                       type_reference = inner.value_type.copy ();
+                       type_reference.nullable = false;
                }
 
                type_reference.check (analyzer);