perf: use ArrayBuffer::Data() instead of GetBackingStore()->Data() (#44073)
perf: use ArrayBuffer::Data() API Replace our `GetBackingStore()->Data()` calls with this instead. Explained by the V8 docs, ArrayBuffer.Data() is > More efficient shortcut for GetBackingStore()->Data(). The > returned pointer is valid as long as the ArrayBuffer is alive. Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com>
This commit is contained in:
parent
0646cbfba6
commit
7b14a305f8
2 changed files with 2 additions and 5 deletions
|
@ -255,9 +255,7 @@ v8::Local<v8::Value> NativeImage::ToBitmap(gin::Arguments* args) {
|
||||||
|
|
||||||
auto array_buffer =
|
auto array_buffer =
|
||||||
v8::ArrayBuffer::New(args->isolate(), info.computeMinByteSize());
|
v8::ArrayBuffer::New(args->isolate(), info.computeMinByteSize());
|
||||||
auto backing_store = array_buffer->GetBackingStore();
|
if (bitmap.readPixels(info, array_buffer->Data(), info.minRowBytes(), 0, 0)) {
|
||||||
if (bitmap.readPixels(info, backing_store->Data(), info.minRowBytes(), 0,
|
|
||||||
0)) {
|
|
||||||
return node::Buffer::New(args->isolate(), array_buffer, 0,
|
return node::Buffer::New(args->isolate(), array_buffer, 0,
|
||||||
info.computeMinByteSize())
|
info.computeMinByteSize())
|
||||||
.ToLocalChecked();
|
.ToLocalChecked();
|
||||||
|
|
|
@ -712,8 +712,7 @@ void SimpleURLLoaderWrapper::OnDataReceived(std::string_view string_view,
|
||||||
v8::Isolate* isolate = JavascriptEnvironment::GetIsolate();
|
v8::Isolate* isolate = JavascriptEnvironment::GetIsolate();
|
||||||
v8::HandleScope handle_scope(isolate);
|
v8::HandleScope handle_scope(isolate);
|
||||||
auto array_buffer = v8::ArrayBuffer::New(isolate, string_view.size());
|
auto array_buffer = v8::ArrayBuffer::New(isolate, string_view.size());
|
||||||
auto backing_store = array_buffer->GetBackingStore();
|
memcpy(array_buffer->Data(), string_view.data(), string_view.size());
|
||||||
memcpy(backing_store->Data(), string_view.data(), string_view.size());
|
|
||||||
Emit("data", array_buffer,
|
Emit("data", array_buffer,
|
||||||
base::AdaptCallbackForRepeating(std::move(resume)));
|
base::AdaptCallbackForRepeating(std::move(resume)));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue