| Index: gpu/command_buffer/service/command_buffer_service.cc
|
| diff --git a/gpu/command_buffer/service/command_buffer_service.cc b/gpu/command_buffer/service/command_buffer_service.cc
|
| index 58b96ac21d648ebca4fc8173db38a35548d4d203..df2bd074273b45c6685bdc15b861bc77d5c462ae 100644
|
| --- a/gpu/command_buffer/service/command_buffer_service.cc
|
| +++ b/gpu/command_buffer/service/command_buffer_service.cc
|
| @@ -88,10 +88,12 @@ void CommandBufferService::Flush(int32 put_offset) {
|
| void CommandBufferService::SetGetBuffer(int32 transfer_buffer_id) {
|
| DCHECK_EQ(-1, ring_buffer_id_);
|
| DCHECK_EQ(put_offset_, get_offset_); // Only if it's empty.
|
| + // If the buffer is invalid we handle it gracefully.
|
| + // This means ring_buffer_ can be NULL.
|
| ring_buffer_ = GetTransferBuffer(transfer_buffer_id);
|
| - DCHECK(ring_buffer_);
|
| ring_buffer_id_ = transfer_buffer_id;
|
| - num_entries_ = ring_buffer_->size() / sizeof(CommandBufferEntry);
|
| + int32 size = ring_buffer_ ? ring_buffer_->size() : 0;
|
| + num_entries_ = size / sizeof(CommandBufferEntry);
|
| put_offset_ = 0;
|
| SetGetOffset(0);
|
| if (!get_buffer_change_callback_.is_null()) {
|
|
|