diff options
author | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-06 05:46:06 +0000 |
---|---|---|
committer | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-06 05:46:06 +0000 |
commit | 61949f628a7da3d98c6a4913eac026abcf6037ca (patch) | |
tree | 0f9197869e41d2da4732af0b253b58d0bf7eddde /cc/resources/picture_layer_tiling.h | |
parent | 92d9392f1f567a27734093cf04b2993005b1c31b (diff) | |
download | chromium_src-61949f628a7da3d98c6a4913eac026abcf6037ca.zip chromium_src-61949f628a7da3d98c6a4913eac026abcf6037ca.tar.gz chromium_src-61949f628a7da3d98c6a4913eac026abcf6037ca.tar.bz2 |
Pipeline: Use WeakPtr for DemuxerHost Calls and Tasks.
There is a chance that the Demuxer calls host_->OnDemuxerError() right
before Stop() is called. The Pipeline always posts a ErrorChangedTask() for
OnDemuxerError() with base::Retained(this).
After the Demuxer fires the stop callback, the Pipeline could be destroyed
immediately. So If the media thread hasn't been destroyed we could end up with
running ErrorChangedTask() on null pipeline which causes a crash.
This CL uses a weak pointer for DemuxerHost calls so that no task will run
after the pipeline is destroyed.
BUG=397656, 399417, 365141
TEST=Updated unit tests to cover this case.
R=scherkus@chromium.org
Review URL: https://codereview.chromium.org/423073012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287687 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/resources/picture_layer_tiling.h')
0 files changed, 0 insertions, 0 deletions