@@ -90,10 +90,11 @@ using Convert = ConvertForWcharSize<sizeof(wchar_t)>;
90
90
91
91
static void convertFromUTF8 (llvm::StringRef utf8,
92
92
llvm::SmallVectorImpl<wchar_t > &out) {
93
+ size_t original_out_size = out.size ();
93
94
size_t reserve = out.size () + utf8.size ();
94
95
out.resize_for_overwrite (reserve);
95
96
const char *utf8_begin = utf8.begin ();
96
- wchar_t *wide_begin = out.end () ;
97
+ wchar_t *wide_begin = out.begin () + original_out_size ;
97
98
auto res = Convert::ConvertFromUTF8 (&utf8_begin, utf8.end (),
98
99
&wide_begin, out.data () + reserve,
99
100
lenientConversion);
@@ -104,10 +105,11 @@ static void convertFromUTF8(llvm::StringRef utf8,
104
105
105
106
static void convertToUTF8 (llvm::ArrayRef<wchar_t > wide,
106
107
llvm::SmallVectorImpl<char > &out) {
108
+ size_t original_out_size = out.size ();
107
109
size_t reserve = out.size () + wide.size ()*4 ;
108
110
out.resize_for_overwrite (reserve);
109
111
const wchar_t *wide_begin = wide.begin ();
110
- char *utf8_begin = out.end () ;
112
+ char *utf8_begin = out.begin () + original_out_size ;
111
113
auto res = Convert::ConvertToUTF8 (&wide_begin, wide.end (),
112
114
&utf8_begin, out.data () + reserve,
113
115
lenientConversion);
0 commit comments