diff options
author | Jamie McCracken <jamiemcc@gnome.org> | 2008-05-27 05:05:28 +0000 |
---|---|---|
committer | Jamie McCracken <jamiemcc@src.gnome.org> | 2008-05-27 05:05:28 +0000 |
commit | 6f07fe74e8bd7ade12efe40e17fa77e96f071b42 (patch) | |
tree | e93fca0ebefb1dde85ea2f22681f5b9f59b363e7 /vala | |
parent | 207144d25836b988cdf6c99f0cef655478997647 (diff) | |
download | vala-6f07fe74e8bd7ade12efe40e17fa77e96f071b42.tar.gz |
Improved performance of print statement
2008-05-27 Jamie McCracken <jamiemcc@gnome.org>
* vala/valagenieparser.vala:
Improved performance of print statement
svn path=/trunk/; revision=1457
Diffstat (limited to 'vala')
-rw-r--r-- | vala/valagenieparser.vala | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/vala/valagenieparser.vala b/vala/valagenieparser.vala index fa5989c6c..2c8410aad 100644 --- a/vala/valagenieparser.vala +++ b/vala/valagenieparser.vala @@ -638,9 +638,22 @@ public class Vala.Genie.Parser : CodeVisitor { i++; if (p_expr != null) { - string s = "\"\\n\""; - var rhs = new StringLiteral (s, get_src (begin)); - p_expr = new BinaryExpression (BinaryOperator.PLUS, p_expr, rhs, get_src (begin)); + string s = "\\n\""; + + if (p_expr is StringLiteral) { + var s_exp = (StringLiteral) p_expr; + var len = s_exp.value.size (); + + if (len > 2) { + var st = s_exp.value.ndup (len-1); + st += s; + s_exp.value = st; + } + } else { + string s = "\"\\n\""; + var rhs = new StringLiteral (s, get_src (begin)); + p_expr = new BinaryExpression (BinaryOperator.PLUS, p_expr, rhs, get_src (begin)); + } } } |