summaryrefslogtreecommitdiff
path: root/vala
diff options
context:
space:
mode:
authorJamie McCracken <jamiemcc@gnome.org>2008-05-27 05:05:28 +0000
committerJamie McCracken <jamiemcc@src.gnome.org>2008-05-27 05:05:28 +0000
commit6f07fe74e8bd7ade12efe40e17fa77e96f071b42 (patch)
treee93fca0ebefb1dde85ea2f22681f5b9f59b363e7 /vala
parent207144d25836b988cdf6c99f0cef655478997647 (diff)
downloadvala-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.vala19
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));
+ }
}
}