Chromium Code Reviews| Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
| index 0886768193444d6e61c7467c5ef30e28aeaf85a6..2064c24df6603920909e2619f1a857f07b3a4b9f 100644 |
| --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
| @@ -3628,6 +3628,13 @@ void GLES2DecoderImpl::Destroy(bool have_context) { |
| DCHECK(!have_context || context_->IsCurrent(NULL)); |
| + if (vertex_array_manager_ .get()) { |
| + // Destroy needs to be called before the VertexAttribManagers are destoryed |
|
jamesr
2015/04/30 00:11:21
s/destoryed/destroyed/
etiennej
2015/04/30 12:27:08
Done.
|
| + // so that they know the context is no longer available and do not attempts |
| + // to call gl* functions. |
| + vertex_array_manager_->Destroy(have_context); |
| + } |
| + |
| // Unbind everything. |
| state_.vertex_attrib_manager = NULL; |
| state_.default_vertex_attrib_manager = NULL; |
| @@ -3727,7 +3734,6 @@ void GLES2DecoderImpl::Destroy(bool have_context) { |
| } |
| if (vertex_array_manager_ .get()) { |
| - vertex_array_manager_->Destroy(have_context); |
| vertex_array_manager_.reset(); |
| } |
| @@ -3952,7 +3958,6 @@ error::Error GLES2DecoderImpl::HandleResizeCHROMIUM(uint32 immediate_data_size, |
| if (!resize_callback_.is_null()) { |
| resize_callback_.Run(gfx::Size(width, height), scale_factor); |
| - DCHECK(context_->IsCurrent(surface_.get())); |
| if (!context_->IsCurrent(surface_.get())) { |
| LOG(ERROR) << "GLES2DecoderImpl: Context lost because context no longer " |
| << "current after resize callback."; |