summaryrefslogtreecommitdiff
path: root/vala/valaexpression.vala
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2010-08-12 00:32:50 +0200
committerJürg Billeter <j@bitron.ch>2010-08-12 14:40:15 +0200
commit664ebfd2edfae79da695252a3ba90658a5741f40 (patch)
tree97d43d14a7eb01f234652a9f2383a4f7eefc84ad /vala/valaexpression.vala
parentb597659a5fd455a0167bbe954f2c46cd8e939199 (diff)
downloadvala-664ebfd2edfae79da695252a3ba90658a5741f40.tar.gz
Do not create array lists where not necessary
Diffstat (limited to 'vala/valaexpression.vala')
-rw-r--r--vala/valaexpression.vala16
1 files changed, 13 insertions, 3 deletions
diff --git a/vala/valaexpression.vala b/vala/valaexpression.vala
index afd54aa0c..23c01e291 100644
--- a/vala/valaexpression.vala
+++ b/vala/valaexpression.vala
@@ -61,9 +61,9 @@ public abstract class Vala.Expression : CodeNode {
*
* The code generator sets and uses them for memory management.
*/
- public ArrayList<LocalVariable> temp_vars = new ArrayList<LocalVariable> ();
+ public ArrayList<LocalVariable> temp_vars;
- private List<CCodeExpression> array_sizes = new ArrayList<CCodeExpression> ();
+ private List<CCodeExpression> array_sizes;
public CCodeExpression? delegate_target { get; set; }
public CCodeExpression? delegate_target_destroy_notify { get; set; }
@@ -89,10 +89,20 @@ public abstract class Vala.Expression : CodeNode {
return false;
}
+ public void add_temp_var (LocalVariable local) {
+ if (temp_vars == null) {
+ temp_vars = new ArrayList<LocalVariable> ();
+ }
+ temp_vars.add (local);
+ }
+
/**
* Add an array size C code expression.
*/
public void append_array_size (CCodeExpression size) {
+ if (array_sizes == null) {
+ array_sizes = new ArrayList<CCodeExpression> ();
+ }
array_sizes.add (size);
}
@@ -100,7 +110,7 @@ public abstract class Vala.Expression : CodeNode {
* Get the C code expression for array sizes for all dimensions
* ascending from left to right.
*/
- public List<CCodeExpression> get_array_sizes () {
+ public List<CCodeExpression>? get_array_sizes () {
return array_sizes;
}