[vala] codegen: Fix crash when accessing arrays of unknown length
- From: Jürg Billeter <juergbi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] codegen: Fix crash when accessing arrays of unknown length
- Date: Thu, 11 Nov 2010 13:15:53 +0000 (UTC)
commit 4a37e081ec33291758210b0d22ca54c603aa370b
Author: Jürg Billeter <j bitron ch>
Date: Thu Nov 11 14:14:37 2010 +0100
codegen: Fix crash when accessing arrays of unknown length
Fixes bug 634556.
codegen/valaccodememberaccessmodule.vala | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/codegen/valaccodememberaccessmodule.vala b/codegen/valaccodememberaccessmodule.vala
index 5bfc603..a544cba 100644
--- a/codegen/valaccodememberaccessmodule.vala
+++ b/codegen/valaccodememberaccessmodule.vala
@@ -207,6 +207,10 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
set_array_size_cvalue (expr.target_value, new CCodeMemberAccess (inst, size_cname));
}
}
+ } else {
+ for (int dim = 1; dim <= array_type.rank; dim++) {
+ append_array_size (expr, new CCodeConstant ("-1"));
+ }
}
} else if (delegate_type != null && delegate_type.delegate_symbol.has_target) {
string target_cname = get_delegate_target_cname (field.get_cname ());
@@ -282,6 +286,10 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
if (array_type.rank == 1 && field.is_internal_symbol ()) {
set_array_size_cvalue (expr.target_value, new CCodeIdentifier (get_array_size_cname (field.get_cname ())));
}
+ } else {
+ for (int dim = 1; dim <= array_type.rank; dim++) {
+ append_array_size (expr, new CCodeConstant ("-1"));
+ }
}
} else if (delegate_type != null && delegate_type.delegate_symbol.has_target) {
set_delegate_target_destroy_notify (expr, new CCodeConstant ("NULL"));
@@ -596,6 +604,10 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
}
append_array_size (expr, length_expr);
}
+ } else {
+ for (int dim = 1; dim <= array_type.rank; dim++) {
+ append_array_size (expr, new CCodeConstant ("-1"));
+ }
}
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]