summaryrefslogtreecommitdiff
path: root/codegen/valaccodememberaccessmodule.vala
diff options
context:
space:
mode:
authorLuca Bruno <lucabru@src.gnome.org>2011-05-04 10:46:36 +0200
committerLuca Bruno <lucabru@src.gnome.org>2011-05-04 11:02:11 +0200
commit29dee9bb21c46011446aeb8ed9006a97c19174b4 (patch)
treed5b7172cdfc53b1c7cd3f8a5a686289ce84ce5e1 /codegen/valaccodememberaccessmodule.vala
parent850dd1fccaae4c56a6b979ef4783a088ab3f438b (diff)
downloadvala-29dee9bb21c46011446aeb8ed9006a97c19174b4.tar.gz
codegen: Add array_length_cexpr in GLibValue
Diffstat (limited to 'codegen/valaccodememberaccessmodule.vala')
-rw-r--r--codegen/valaccodememberaccessmodule.vala7
1 files changed, 6 insertions, 1 deletions
diff --git a/codegen/valaccodememberaccessmodule.vala b/codegen/valaccodememberaccessmodule.vala
index 6c50e0f5a..fb8ed3529 100644
--- a/codegen/valaccodememberaccessmodule.vala
+++ b/codegen/valaccodememberaccessmodule.vala
@@ -340,7 +340,6 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
/* Returns lvalue access to the given local variable */
public override TargetValue get_local_cvalue (LocalVariable local) {
var result = new GLibValue (local.variable_type.copy ());
- result.array_null_terminated = local.array_null_terminated;
var array_type = local.variable_type as ArrayType;
var delegate_type = local.variable_type as DelegateType;
@@ -396,6 +395,9 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
public override TargetValue get_parameter_cvalue (Parameter param) {
var result = new GLibValue (param.variable_type.copy ());
result.array_null_terminated = param.array_null_terminated;
+ if (param.has_array_length_cexpr) {
+ result.array_length_cexpr = new CCodeConstant (param.get_array_length_cexpr ());
+ }
if (param.captured || is_in_coroutine ()) {
result.value_type.value_owned = true;
}
@@ -506,6 +508,9 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
var result = new GLibValue (value_type);
result.array_null_terminated = field.array_null_terminated;
+ if (field.has_array_length_cexpr) {
+ result.array_length_cexpr = new CCodeConstant (field.get_array_length_cexpr ());
+ }
var array_type = result.value_type as ArrayType;
var delegate_type = result.value_type as DelegateType;