tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 793acd94638f6b89c3309c3107fb9a7068cae49a
parent 132a4cb3cf93b917664e15a83251e1b0967e0fe5
Author: Alexandru Marc <amarc@mozilla.com>
Date:   Tue, 14 Oct 2025 20:58:06 +0300

Revert "Bug 1993113. r=webgpu-reviewers,jimb" for causing build bustages @ nsTArray.h

This reverts commit 132a4cb3cf93b917664e15a83251e1b0967e0fe5.

Diffstat:
Mdom/webgpu/ipc/WebGPUParent.cpp | 17++++++++---------
Mdom/webgpu/ipc/WebGPUParent.h | 4++--
2 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/dom/webgpu/ipc/WebGPUParent.cpp b/dom/webgpu/ipc/WebGPUParent.cpp @@ -216,11 +216,11 @@ extern void wgpu_server_set_buffer_map_data( uintptr_t aShmemIndex) { auto* parent = static_cast<WebGPUParent*>(aParent); - auto mapping = parent->mTempMappings.ElementAt(aShmemIndex); - MOZ_ASSERT(mapping); + auto mapping = std::move(parent->mTempMappings.ElementAt(aShmemIndex)); + MOZ_ASSERT(mapping.isSome()); auto data = WebGPUParent::BufferMapData{ - mapping, aHasMapFlags, aMappedOffset, aMappedSize, aDeviceId, + std::move(*mapping), aHasMapFlags, aMappedOffset, aMappedSize, aDeviceId, }; parent->mSharedMemoryMap.insert({aBufferId, std::move(data)}); @@ -737,9 +737,9 @@ void WebGPUParent::MapCallback(uint8_t* aUserData, MOZ_RELEASE_ASSERT(!error.GetError()); - MOZ_RELEASE_ASSERT(mapData->mShmem->Size() >= offset + size); + MOZ_RELEASE_ASSERT(mapData->mShmem.Size() >= offset + size); if (src.ptr != nullptr && src.length >= size) { - auto dst = mapData->mShmem->DataAsSpan<uint8_t>().Subspan(offset, size); + auto dst = mapData->mShmem.DataAsSpan<uint8_t>().Subspan(offset, size); memcpy(dst.data(), src.ptr, size); } } @@ -774,11 +774,11 @@ void WebGPUParent::BufferUnmap(RawId aDeviceId, RawId aBufferId, bool aFlush) { ForwardError(getRangeError); if (mapped.ptr != nullptr && mapped.length >= size) { - auto shmSize = mapData->mShmem->Size(); + auto shmSize = mapData->mShmem.Size(); MOZ_RELEASE_ASSERT(offset <= shmSize); MOZ_RELEASE_ASSERT(size <= shmSize - offset); - auto src = mapData->mShmem->DataAsSpan<uint8_t>().Subspan(offset, size); + auto src = mapData->mShmem.DataAsSpan<uint8_t>().Subspan(offset, size); memcpy(mapped.ptr, src.data(), size); } @@ -1584,8 +1584,7 @@ ipc::IPCResult WebGPUParent::RecvMessages( // `aShmem` may be an invalid handle, however this will simply result in an // invalid mapping with 0 size, which we use safely. - mTempMappings.AppendElement( - std::make_shared<ipc::SharedMemoryMapping>(std::move(mapping))); + mTempMappings.AppendElement(Some(std::move(mapping))); } ffi::WGPUFfiSlice_ByteBuf data_buffers{ToFFI(aDataBuffers.Elements()), diff --git a/dom/webgpu/ipc/WebGPUParent.h b/dom/webgpu/ipc/WebGPUParent.h @@ -135,7 +135,7 @@ class WebGPUParent final : public PWebGPUParent, public SupportsWeakPtr { void ActorDestroy(ActorDestroyReason aWhy) override; struct BufferMapData { - std::shared_ptr<ipc::SharedMemoryMapping> mShmem; + ipc::SharedMemoryMapping mShmem; // True if buffer's usage has MAP_READ or MAP_WRITE set. bool mHasMapFlags; uint64_t mMappedOffset; @@ -219,7 +219,7 @@ class WebGPUParent final : public PWebGPUParent, public SupportsWeakPtr { void ReportError(RawId aDeviceId, GPUErrorFilter, const nsCString& message); - nsTArray<std::shared_ptr<ipc::SharedMemoryMapping>> mTempMappings; + nsTArray<Maybe<ipc::shared_memory::MutableMapping>> mTempMappings; /// A map from wgpu buffer ids to data about their shared memory segments. /// Includes entries about mappedAtCreation, MAP_READ and MAP_WRITE buffers,