From 6113c4fe63b64f88ccf98388c0493dff45a22d3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20Kr=C3=BCger?= <45282134+UweKrueger@users.noreply.github.com> Date: Sat, 13 Jun 2020 18:39:17 +0200 Subject: [PATCH] builtin: fix string interpolation for autofree --- vlib/v/gen/cgen.v | 2 +- vlib/v/gen/str.v | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vlib/v/gen/cgen.v b/vlib/v/gen/cgen.v index 16137677b1..a2a45c44c9 100644 --- a/vlib/v/gen/cgen.v +++ b/vlib/v/gen/cgen.v @@ -3054,7 +3054,7 @@ fn (mut g Gen) string_inter_literal(node ast.StringInterLiteral) { // TODO: better check this case g.write('${fmt}"PRId32"') } - if i < node.exprs.len - 1 && !g.pref.autofree { + if i < node.exprs.len - 1 { g.write('\\000') } } diff --git a/vlib/v/gen/str.v b/vlib/v/gen/str.v index 50df270911..5ecb8df188 100644 --- a/vlib/v/gen/str.v +++ b/vlib/v/gen/str.v @@ -18,7 +18,7 @@ void _STR_PRINT_ARG(const char *fmt, char** refbufp, int *nbytes, int *memsize, guess = vsnprintf(*refbufp + *nbytes, *memsize - *nbytes, fmt, args); if (guess < *memsize - *nbytes) { // result did fit into buffer *nbytes += guess; - return; + break; } } // increase buffer (somewhat exponentially)