Files
Michael Froman 3fab9a2129 Bug 2058693 - Vendor libwebrtc from 55cc86c575
Upstream commit: https://webrtc.googlesource.com/src/+/55cc86c575a78cb683a72545cd10d089e9126169
    Reset prior ChannelSendFrameTransformerDelegate on re-assignment

    When setting a frame transformer on ChannelSend via
    InitFrameTransformerDelegate, any existing frame_transformer_delegate_
    was overwritten without calling Reset() on the prior delegate.

    The orphaned delegate remained registered with its transformer and
    retained a callback lambda capturing a raw ChannelSend pointer. Upon
    destruction of ChannelSend, only the active delegate was reset,
    leaving the orphaned delegate with a dangling pointer that could be
    invoked post-teardown.

    This change calls Reset() on any existing frame_transformer_delegate_
    before replacing it with a new delegate, unregistering the old
    delegate and disarming its callback lambda.

    Bug: b:510386389
    Change-Id: Ib0cf86c129280551daaeea3fcd5c08b9c5172b1b
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/487001
    Reviewed-by: Per Åhgren <peah@webrtc.org>
    Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
    Commit-Queue: Per Åhgren <peah@webrtc.org>
    Cr-Commit-Position: refs/heads/main@{#48131}
2026-08-14 22:31:39 +00:00

27 lines
884 B
Diff

From: Byron Campen <docfaraday@gmail.com>
Date: Thu, 20 Jul 2023 14:24:00 +0000
Subject: Bug 1838080: Remove this duplicate init (that's also on the wrong
thread). r=pehrsons,webrtc-reviewers
This was causing assertions.
Differential Revision: https://phabricator.services.mozilla.com/D179731
Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/6ac6592a04a839a6152d5ad5f0778f63dbbd6b1b
---
audio/channel_send.cc | 2 --
1 file changed, 2 deletions(-)
diff --git a/audio/channel_send.cc b/audio/channel_send.cc
index 4fb30b2f14..b65b937923 100644
--- a/audio/channel_send.cc
+++ b/audio/channel_send.cc
@@ -585,8 +585,6 @@ ChannelSend::ChannelSend(
int error = audio_coding_->RegisterTransportCallback(this);
RTC_DCHECK_EQ(0, error);
- if (frame_transformer)
- InitFrameTransformerDelegate(std::move(frame_transformer));
}
ChannelSend::~ChannelSend() {