[Webkit-unassigned] [Bug 214345] New: [MSE][GStreamer] Break circular reference between SourceBufferPrivateGStreamer and AppendPipeline
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Jul 15 03:42:17 PDT 2020
https://bugs.webkit.org/show_bug.cgi?id=214345
Bug ID: 214345
Summary: [MSE][GStreamer] Break circular reference between
SourceBufferPrivateGStreamer and AppendPipeline
Product: WebKit
Version: WebKit Nightly Build
Hardware: Unspecified
OS: Unspecified
Status: NEW
Severity: Normal
Priority: P2
Component: WebKitGTK
Assignee: webkit-unassigned at lists.webkit.org
Reporter: aboya at igalia.com
CC: bugs-noreply at webkitgtk.org
SourceBufferPrivate is ref counted.
AppendPipeline is owned exclusively by SourceBufferPrivateGStreamer:
it's born and destroyed with it, managed by a never-moved unique_ptr.
AppendPipeline needs a reference to SourceBufferPrivateGStreamer to
notify it of essential events like samples having been parsed. This
used to be a Ref<>, thus creating a circular reference leak:
AppendPipeline is only destroyed in SourceBufferPrivateGStreamer
destructor. AppendPipeline holds ref counted reference to
SourceBufferPrivateGStreamer, therefore neither are destroyed.
This patch breaks the cycle by replacing the Ref<> in AppendPipeline
with a plain old reference. This is safe because
SourceBufferPrivateGStreamer owns, and therefore is alive at least
just as long as AppendPipeline.
As a consequence of not using Ref<>, the SourceBufferPrivateGStreamer
constructor does no longer need to relax the adoption requirements and
unique_ptr<AppendPipeline> can be replaced by a UniqueRef<>.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20200715/b025f249/attachment.htm>
More information about the webkit-unassigned
mailing list