@@ -197,24 +197,23 @@ void BindingData::EncodeInto(const FunctionCallbackInfo<Value>& args) {
197197
198198 char * write_result = static_cast <char *>(buf->Data ()) + dest->ByteOffset ();
199199 size_t dest_length = dest->ByteLength ();
200+ size_t read = 0 ;
201+ size_t written = 0 ;
200202
201203 // For small strings (length <= 32), use the old V8 path for better
202204 // performance
203- if (source->Length () <= 32 ) {
204- size_t nchars;
205- size_t written =
206- source->WriteUtf8V2 (isolate,
207- write_result,
208- dest_length,
209- String::WriteFlags::kReplaceInvalidUtf8 ,
210- &nchars);
211- binding_data->encode_into_results_buffer_ [0 ] = nchars;
212- binding_data->encode_into_results_buffer_ [1 ] = written;
205+ static constexpr int kSmallStringThreshold = 32 ;
206+ if (source->Length () <= kSmallStringThreshold ) {
207+ written = source->WriteUtf8V2 (isolate,
208+ write_result,
209+ dest_length,
210+ String::WriteFlags::kReplaceInvalidUtf8 ,
211+ &read);
212+ binding_data->encode_into_results_buffer_ [0 ] = static_cast <double >(read);
213+ binding_data->encode_into_results_buffer_ [1 ] = static_cast <double >(written);
213214 return ;
214215 }
215216
216- size_t read = 0 ;
217- size_t written = 0 ;
218217 v8::String::ValueView view (isolate, source);
219218 size_t length_that_fits =
220219 std::min (static_cast <size_t >(view.length ()), dest_length);
@@ -230,8 +229,7 @@ void BindingData::EncodeInto(const FunctionCallbackInfo<Value>& args) {
230229 length_that_fits -= read;
231230 dest_length -= read;
232231 if (length_that_fits != 0 && dest_length != 0 ) {
233- size_t rest = findBestFit (data, length_that_fits, dest_length);
234- if (rest != 0 ) {
232+ if (size_t rest = findBestFit (data, length_that_fits, dest_length)) {
235233 DCHECK_LE (simdutf::utf8_length_from_latin1 (data, rest), dest_length);
236234 written += simdutf::convert_latin1_to_utf8 (data, rest, write_result);
237235 read += rest;
0 commit comments