| Index: content/browser/streams/stream.cc
|
| diff --git a/content/browser/streams/stream.cc b/content/browser/streams/stream.cc
|
| index 0efec1349e4cca6b5a75ae68ecf07fa361ca67fb..e72a8872dc541270aa99a6e637cab2dbead7dbaf 100644
|
| --- a/content/browser/streams/stream.cc
|
| +++ b/content/browser/streams/stream.cc
|
| @@ -29,7 +29,8 @@ Stream::Stream(StreamRegistry* registry,
|
| data_length_(0),
|
| registry_(registry),
|
| read_observer_(NULL),
|
| - write_observer_(write_observer) {
|
| + write_observer_(write_observer),
|
| + weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
|
| CreateByteStream(base::MessageLoopProxy::current(),
|
| base::MessageLoopProxy::current(),
|
| kDeferSizeThreshold,
|
| @@ -37,8 +38,10 @@ Stream::Stream(StreamRegistry* registry,
|
| &reader_);
|
|
|
| // Setup callback for writing.
|
| - writer_->RegisterCallback(base::Bind(&Stream::OnSpaceAvailable, this));
|
| - reader_->RegisterCallback(base::Bind(&Stream::OnDataAvailable, this));
|
| + writer_->RegisterCallback(base::Bind(&Stream::OnSpaceAvailable,
|
| + weak_ptr_factory_.GetWeakPtr()));
|
| + reader_->RegisterCallback(base::Bind(&Stream::OnDataAvailable,
|
| + weak_ptr_factory_.GetWeakPtr()));
|
|
|
| registry_->RegisterStream(this);
|
| }
|
|
|