diff --git a/benchmark/buffers/buffer-indexof.js b/benchmark/buffers/buffer-indexof.js index 52cc95ccb9cf7e..be6cc243a975da 100644 --- a/benchmark/buffers/buffer-indexof.js +++ b/benchmark/buffers/buffer-indexof.js @@ -19,7 +19,7 @@ const searchStrings = [ const bench = common.createBenchmark(main, { search: searchStrings, - encoding: ['undefined', 'utf8', 'ucs2'], + encoding: ['undefined', 'utf8', 'ucs2', 'latin1'], type: ['buffer', 'string'], n: [5e4], }, { diff --git a/src/node_buffer.cc b/src/node_buffer.cc index e40a21288ee79d..acf4aff37c5a9c 100644 --- a/src/node_buffer.cc +++ b/src/node_buffer.cc @@ -1051,23 +1051,19 @@ void IndexOfString(const FunctionCallbackInfo& args) { offset, is_forward); } else if (enc == LATIN1) { - uint8_t* needle_data = node::UncheckedMalloc(needle_length); - if (needle_data == nullptr) { - return args.GetReturnValue().Set(-1); - } + MaybeStackBuffer needle_data(needle_length); StringBytes::Write(isolate, - reinterpret_cast(needle_data), + reinterpret_cast(needle_data.out()), needle_length, needle, enc); result = nbytes::SearchString(reinterpret_cast(haystack), haystack_length, - needle_data, + needle_data.out(), needle_length, offset, is_forward); - free(needle_data); } args.GetReturnValue().Set(