Commit f787726a authored by Sergey Ulanov's avatar Sergey Ulanov Committed by Commit Bot

[Fuchsia] Fix DCHECK in SysmemBufferWriterQueue::ReleaseBuffer()

Previously SysmemBufferWriterQueue wasn't handling properly the case
when a packet is destroyed after ResetBuffers(). Updated ResetBuffers()
to drop weak pointers, to ensure that ReleaseBuffer() is not called
after ResetBuffers().

Bug: 1021646
Change-Id: I75045ce7427eb0c539bd198bb73a5a742531f0f2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1899319
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Yuchen Liu <yucliu@chromium.org>
Auto-Submit: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: default avatarYuchen Liu <yucliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#712730}
parent 8345295a
...@@ -126,6 +126,10 @@ void SysmemBufferWriterQueue::ResetBuffers() { ...@@ -126,6 +126,10 @@ void SysmemBufferWriterQueue::ResetBuffers() {
writer_.reset(); writer_.reset();
send_packet_cb_ = SendPacketCB(); send_packet_cb_ = SendPacketCB();
end_of_stream_cb_ = EndOfStreamCB(); end_of_stream_cb_ = EndOfStreamCB();
// Invalidate weak pointers, so ReleaseBuffer() is not called for the old
// buffers.
weak_factory_.InvalidateWeakPtrs();
} }
void SysmemBufferWriterQueue::ResetPositionAndPause() { void SysmemBufferWriterQueue::ResetPositionAndPause() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment