dawn/wire: Fix dangling pointer on client::Device::mQueue
Bug: dawn:2345
Change-Id: I3ebb065a81bc59b46e82899ee920b1905ceb8d3f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/182800
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn/wire/client/Device.cpp b/src/dawn/wire/client/Device.cpp
index d7d2620..a54d3e5 100644
--- a/src/dawn/wire/client/Device.cpp
+++ b/src/dawn/wire/client/Device.cpp
@@ -200,7 +200,7 @@
Device::~Device() {
if (mQueue != nullptr) {
- GetProcs().queueRelease(ToAPI(mQueue));
+ GetProcs().queueRelease(ToAPI(mQueue.ExtractAsDangling()));
}
}
diff --git a/src/dawn/wire/client/Device.h b/src/dawn/wire/client/Device.h
index 9b081f1..6d16647 100644
--- a/src/dawn/wire/client/Device.h
+++ b/src/dawn/wire/client/Device.h
@@ -105,8 +105,7 @@
raw_ptr<void, DanglingUntriaged> mDeviceLostUserdata = nullptr;
raw_ptr<void> mLoggingUserdata = nullptr;
- // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire:
- raw_ptr<Queue, DanglingUntriaged> mQueue = nullptr;
+ raw_ptr<Queue> mQueue = nullptr;
std::shared_ptr<bool> mIsAlive;
};