From: Jürg Billeter Date: Thu, 21 Oct 2010 10:15:20 +0000 (+0200) Subject: codegen: Set TargetValue.value_type X-Git-Tag: 0.11.1~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e73d5bb3b780c59ebd61b01a3f54d219a71e79a;p=thirdparty%2Fvala.git codegen: Set TargetValue.value_type --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index 51a145abc..0d07ae510 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -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? 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; + } } diff --git a/codegen/valadovabasemodule.vala b/codegen/valadovabasemodule.vala index 14b42827c..c421cbe29 100644 --- a/codegen/valadovabasemodule.vala +++ b/codegen/valadovabasemodule.vala @@ -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; + } } diff --git a/vala/valatargetvalue.vala b/vala/valatargetvalue.vala index e84913ab3..b21483ea0 100644 --- a/vala/valatargetvalue.vala +++ b/vala/valatargetvalue.vala @@ -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; + } }