From cde9f9ad5fb152436d1d601ae6b281f66fba0de9 Mon Sep 17 00:00:00 2001 From: Steven Schveighoffer Date: Sun, 28 Jan 2018 12:36:30 -0500 Subject: [PATCH] Fixes issue 18279 - Use reserve, which properly works with current GC, vs. old mechanism of setting length to 0. --- src/rt/util/utf.d | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/rt/util/utf.d b/src/rt/util/utf.d index 8c0eed2be1..d2fa7e7857 100644 --- a/src/rt/util/utf.d +++ b/src/rt/util/utf.d @@ -723,8 +723,7 @@ wstring toUTF16(in char[] s) wchar[] r; size_t slen = s.length; - r.length = slen; - r.length = 0; + r.reserve(slen); for (size_t i = 0; i < slen; ) { dchar c = s[i]; @@ -750,8 +749,7 @@ wptr toUTF16z(in char[] s) wchar[] r; size_t slen = s.length; - r.length = slen + 1; - r.length = 0; + r.reserve(slen + 1); for (size_t i = 0; i < slen; ) { dchar c = s[i]; @@ -789,8 +787,7 @@ wstring toUTF16(in dchar[] s) wchar[] r; size_t slen = s.length; - r.length = slen; - r.length = 0; + r.reserve(slen); for (size_t i = 0; i < slen; i++) { encode(r, s[i]);