Commit da8fafe4 authored by Andreas Haas's avatar Andreas Haas Committed by Commit Bot

[arraybuffer] Remove uses of ArrayBufferContents::DataHandle

We are removing external uses of ArrayBufferContents::DataHandle so that
eventually we can remove the whole class and change the
implementation of WTF::ArrayBuffers. This CL is an intermediate step on
the way which replaces the external use of DataHandle to make a later
refactoring of ArrayBufferContents easier.

Bug: chromium:1008840
Change-Id: I9bcdee83e26eeccc7a8028c0bf3dd8fe9a455692
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1868993Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarKenneth Russell <kbr@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#708162}
parent 8184fccd
......@@ -242,14 +242,12 @@ MojoMapBufferResult* MojoHandle::mapBuffer(unsigned offset,
MojoMapBuffer(handle_.get().value(), offset, num_bytes, nullptr, &data);
result_dict->setResult(result);
if (result == MOJO_RESULT_OK) {
WTF::ArrayBufferContents::DataHandle data_handle(
WTF::ArrayBufferContents contents(
data, num_bytes,
[](void* buffer, size_t length, void* alloc_data) {
MojoResult result = MojoUnmapBuffer(buffer);
DCHECK_EQ(result, MOJO_RESULT_OK);
},
nullptr);
WTF::ArrayBufferContents contents(std::move(data_handle),
WTF::ArrayBufferContents::kNotShared);
result_dict->setBuffer(DOMArrayBuffer::Create(contents));
}
......
......@@ -61,15 +61,12 @@ DawnBufferDescriptor AsDawnType(const GPUBufferDescriptor* webgpu_desc) {
DOMArrayBuffer* CreateArrayBufferForMappedData(void* data, size_t data_length) {
DCHECK(data);
WTF::ArrayBufferContents::DataHandle handle(
WTF::ArrayBufferContents contents(
data, data_length,
[](void* data, size_t length, void* info) {
// DataDeleter does nothing because Dawn wire owns the memory.
},
nullptr);
WTF::ArrayBufferContents contents(
std::move(handle), WTF::ArrayBufferContents::SharingType::kNotShared);
WTF::ArrayBufferContents::SharingType::kNotShared);
return DOMArrayBuffer::Create(contents);
}
......
......@@ -66,6 +66,14 @@ ArrayBufferContents::ArrayBufferContents(DataHandle data,
}
}
ArrayBufferContents::ArrayBufferContents(void* data,
size_t length,
DataDeleter deleter,
SharingType is_shared)
: holder_(base::AdoptRef(new DataHolder())) {
holder_->Adopt(DataHandle(data, length, deleter, nullptr), is_shared);
}
ArrayBufferContents::~ArrayBufferContents() = default;
void ArrayBufferContents::Detach() {
......
......@@ -114,6 +114,10 @@ class WTF_EXPORT ArrayBufferContents {
unsigned element_byte_size,
SharingType is_shared,
InitializationPolicy);
ArrayBufferContents(void* data,
size_t length,
DataDeleter deleter,
SharingType is_shared);
ArrayBufferContents(DataHandle,
SharingType is_shared);
ArrayBufferContents(ArrayBufferContents&&) = default;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment