diff options
-rw-r--r-- | chromium/third_party/blink/renderer/modules/webaudio/deferred_task_handler.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/chromium/third_party/blink/renderer/modules/webaudio/deferred_task_handler.cc b/chromium/third_party/blink/renderer/modules/webaudio/deferred_task_handler.cc index 9fd38f0dde7..fca70458c5a 100644 --- a/chromium/third_party/blink/renderer/modules/webaudio/deferred_task_handler.cc +++ b/chromium/third_party/blink/renderer/modules/webaudio/deferred_task_handler.cc @@ -78,8 +78,10 @@ void DeferredTaskHandler::BreakConnections() { wtf_size_t size = finished_source_handlers_.size(); if (size > 0) { for (auto* finished : finished_source_handlers_) { - active_source_handlers_.erase(finished); + // Break connection first and then remove from the list because that can + // cause the handler to be deleted. finished->BreakConnectionWithLock(); + active_source_handlers_.erase(finished); } finished_source_handlers_.clear(); } |