| Index: chrome/browser/ui/webui/chrome_url_data_manager.cc
|
| diff --git a/chrome/browser/ui/webui/chrome_url_data_manager.cc b/chrome/browser/ui/webui/chrome_url_data_manager.cc
|
| index 43ede09d0d6543b05d41e0ca53e80e83383045cc..967f1a5df948f9394e960e3fe7d832273da060ff 100644
|
| --- a/chrome/browser/ui/webui/chrome_url_data_manager.cc
|
| +++ b/chrome/browser/ui/webui/chrome_url_data_manager.cc
|
| @@ -119,6 +119,8 @@ ChromeURLDataManager::DataSource::~DataSource() {
|
|
|
| void ChromeURLDataManager::DataSource::SendResponse(int request_id,
|
| RefCountedMemory* bytes) {
|
| + // Take a ref-pointer on entry so byte->Release() will always get called.
|
| + scoped_refptr<RefCountedMemory> bytes_ptr(bytes);
|
| if (IsScheduledForDeletion(this)) {
|
| // We're scheduled for deletion. Servicing the request would result in
|
| // this->AddRef being invoked, even though the ref count is 0 and 'this' is
|
| @@ -136,7 +138,7 @@ void ChromeURLDataManager::DataSource::SendResponse(int request_id,
|
| BrowserThread::PostTask(
|
| BrowserThread::IO, FROM_HERE,
|
| NewRunnableMethod(this, &DataSource::SendResponseOnIOThread,
|
| - request_id, make_scoped_refptr(bytes)));
|
| + request_id, bytes_ptr));
|
| }
|
|
|
| MessageLoop* ChromeURLDataManager::DataSource::MessageLoopForRequestPath(
|
|
|