]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Set TargetValue.value_type
authorJürg Billeter <j@bitron.ch>
Thu, 21 Oct 2010 10:15:20 +0000 (12:15 +0200)
committerJürg Billeter <j@bitron.ch>
Thu, 21 Oct 2010 10:15:20 +0000 (12:15 +0200)
codegen/valaccodebasemodule.vala
codegen/valadovabasemodule.vala
vala/valatargetvalue.vala

index 51a145abcc6c1b02e1c9be6b71c1014b2d9dd1ba..0d07ae510a6e8d1618dce9ab013f444142569d80 100644 (file)
@@ -5815,7 +5815,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
        public void set_cvalue (Expression expr, CCodeExpression? cvalue) {
                var glib_value = (GLibValue) expr.target_value;
                if (glib_value == null) {
-                       glib_value = new GLibValue ();
+                       glib_value = new GLibValue (expr.value_type);
                        expr.target_value = glib_value;
                }
                glib_value.ccodenode = cvalue;
@@ -5832,7 +5832,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
        public void set_delegate_target (Expression expr, CCodeExpression? delegate_target) {
                var glib_value = (GLibValue) expr.target_value;
                if (glib_value == null) {
-                       glib_value = new GLibValue ();
+                       glib_value = new GLibValue (expr.value_type);
                        expr.target_value = glib_value;
                }
                glib_value.delegate_target = delegate_target;
@@ -5849,7 +5849,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
        public void set_delegate_target_destroy_notify (Expression expr, CCodeExpression destroy_notify) {
                var glib_value = (GLibValue) expr.target_value;
                if (glib_value == null) {
-                       glib_value = new GLibValue ();
+                       glib_value = new GLibValue (expr.value_type);
                        expr.target_value = glib_value;
                }
                glib_value.delegate_target_destroy_notify = destroy_notify;
@@ -5858,7 +5858,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
        public void append_array_size (Expression expr, CCodeExpression size) {
                var glib_value = (GLibValue) expr.target_value;
                if (glib_value == null) {
-                       glib_value = new GLibValue ();
+                       glib_value = new GLibValue (expr.value_type);
                        expr.target_value = glib_value;
                }
                if (glib_value.array_sizes == null) {
@@ -5870,7 +5870,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
        public List<CCodeExpression>? get_array_sizes (Expression expr) {
                var glib_value = (GLibValue) expr.target_value;
                if (glib_value == null) {
-                       glib_value = new GLibValue ();
+                       glib_value = new GLibValue (expr.value_type);
                        expr.target_value = glib_value;
                }
                return glib_value.array_sizes;
@@ -5884,4 +5884,9 @@ public class Vala.GLibValue : TargetValue {
 
        public CCodeExpression? delegate_target;
        public CCodeExpression? delegate_target_destroy_notify;
+
+       public GLibValue (DataType? value_type = null, CCodeExpression? cvalue = null) {
+               base (value_type);
+               this.ccodenode = cvalue;
+       }
 }
index 14b42827cacd189a10b91ef27ff5bc070166b288..c421cbe295edb2f193251ff404df8250b60ca7dc 100644 (file)
@@ -2277,7 +2277,7 @@ public class Vala.DovaBaseModule : CodeGenerator {
        public void set_cvalue (Expression expr, CCodeExpression? cvalue) {
                var dova_value = (DovaValue) expr.target_value;
                if (dova_value == null) {
-                       dova_value = new DovaValue ();
+                       dova_value = new DovaValue (expr.value_type);
                        expr.target_value = dova_value;
                }
                dova_value.ccodenode = cvalue;
@@ -2286,4 +2286,9 @@ public class Vala.DovaBaseModule : CodeGenerator {
 
 public class Vala.DovaValue : TargetValue {
        public CCodeExpression ccodenode;
+
+       public DovaValue (DataType? value_type = null, CCodeExpression? cvalue = null) {
+               base (value_type);
+               this.ccodenode = cvalue;
+       }
 }
index e84913ab36cb56f8461c50778403373271ba3ab2..b21483ea0237005b29132b0c8acdd8d9ad88eefd 100644 (file)
@@ -21,5 +21,9 @@
  */
 
 public abstract class Vala.TargetValue {
-       public DataType value_type { get; set; }
+       public DataType? value_type { get; set; }
+
+       protected TargetValue (DataType? value_type) {
+               this.value_type = value_type;
+       }
 }