| Index: chrome/browser/renderer_host/async_resource_handler.cc
|
| ===================================================================
|
| --- chrome/browser/renderer_host/async_resource_handler.cc (revision 33125)
|
| +++ chrome/browser/renderer_host/async_resource_handler.cc (working copy)
|
| @@ -31,12 +31,17 @@
|
| explicit SharedIOBuffer(int buffer_size)
|
| : net::IOBuffer(),
|
| ok_(false),
|
| - buffer_size_(buffer_size) {
|
| - if (shared_memory_.Create(std::wstring(), false, false, buffer_size) &&
|
| - shared_memory_.Map(buffer_size)) {
|
| + buffer_size_(buffer_size) {}
|
| +
|
| + bool Init() {
|
| + if (shared_memory_.Create(std::wstring(), false, false, buffer_size_) &&
|
| + shared_memory_.Map(buffer_size_)) {
|
| + data_ = reinterpret_cast<char*>(shared_memory_.memory());
|
| + // TODO(hawk): Remove after debugging bug 16371.
|
| + CHECK(data_);
|
| ok_ = true;
|
| - data_ = reinterpret_cast<char*>(shared_memory_.memory());
|
| }
|
| + return ok_;
|
| }
|
|
|
| base::SharedMemory* shared_memory() { return &shared_memory_; }
|
| @@ -111,8 +116,9 @@
|
| *buf_size = read_buffer_->buffer_size();
|
| } else {
|
| read_buffer_ = new SharedIOBuffer(next_buffer_size_);
|
| - if (!read_buffer_->ok()) {
|
| + if (!read_buffer_->Init()) {
|
| DLOG(ERROR) << "Couldn't allocate shared io buffer";
|
| + read_buffer_ = NULL;
|
| return false;
|
| }
|
| // TODO(willchan): Remove after debugging bug 16371.
|
|
|