Add DisableDanglingPtrDetection to HostMapped userdata pointers

The user data is owned by the caller, so it's ok for these to be
dangling.

Change-Id: I18b425a18aeb215398ccd39e7bf7144a3cccef28
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/173845
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Commit-Queue: Clark DuVall <cduvall@chromium.org>
Auto-Submit: Clark DuVall <cduvall@chromium.org>
diff --git a/src/dawn/native/d3d12/BufferD3D12.cpp b/src/dawn/native/d3d12/BufferD3D12.cpp
index 237e715..453f8c8 100644
--- a/src/dawn/native/d3d12/BufferD3D12.cpp
+++ b/src/dawn/native/d3d12/BufferD3D12.cpp
@@ -516,7 +516,7 @@
 
             std::unique_ptr<Heap> heap;
             wgpu::Callback callback;
-            raw_ptr<void> userdata;
+            raw_ptr<void, DisableDanglingPtrDetection> userdata;
         };
         std::unique_ptr<DisposeTask> request = std::make_unique<DisposeTask>(
             std::move(mHostMappedHeap), mHostMappedDisposeCallback, mHostMappedDisposeUserdata);
diff --git a/src/dawn/native/d3d12/BufferD3D12.h b/src/dawn/native/d3d12/BufferD3D12.h
index dcc25b0..bd0c13e 100644
--- a/src/dawn/native/d3d12/BufferD3D12.h
+++ b/src/dawn/native/d3d12/BufferD3D12.h
@@ -100,7 +100,7 @@
 
     std::unique_ptr<Heap> mHostMappedHeap;
     wgpu::Callback mHostMappedDisposeCallback = nullptr;
-    raw_ptr<void> mHostMappedDisposeUserdata = nullptr;
+    raw_ptr<void, DisableDanglingPtrDetection> mHostMappedDisposeUserdata = nullptr;
 };
 
 }  // namespace dawn::native::d3d12
diff --git a/src/dawn/native/vulkan/BufferVk.cpp b/src/dawn/native/vulkan/BufferVk.cpp
index 9a457aa..d0ac815 100644
--- a/src/dawn/native/vulkan/BufferVk.cpp
+++ b/src/dawn/native/vulkan/BufferVk.cpp
@@ -572,7 +572,7 @@
             void HandleShutDownImpl() override { callback(userdata); }
 
             wgpu::Callback callback;
-            raw_ptr<void> userdata;
+            raw_ptr<void, DisableDanglingPtrDetection> userdata;
         };
         std::unique_ptr<DisposeTask> request =
             std::make_unique<DisposeTask>(mHostMappedDisposeCallback, mHostMappedDisposeUserdata);
diff --git a/src/dawn/native/vulkan/BufferVk.h b/src/dawn/native/vulkan/BufferVk.h
index 471d84c..8dfa8f5 100644
--- a/src/dawn/native/vulkan/BufferVk.h
+++ b/src/dawn/native/vulkan/BufferVk.h
@@ -104,7 +104,7 @@
     VkDeviceMemory mDedicatedDeviceMemory = VK_NULL_HANDLE;
 
     wgpu::Callback mHostMappedDisposeCallback = nullptr;
-    raw_ptr<void> mHostMappedDisposeUserdata = nullptr;
+    raw_ptr<void, DisableDanglingPtrDetection> mHostMappedDisposeUserdata = nullptr;
 
     // Track which usage was the last to write to the buffer.
     wgpu::BufferUsage mLastWriteUsage = wgpu::BufferUsage::None;