| Index: content/common/gpu/gpu_command_buffer_stub.cc
|
| diff --git a/content/common/gpu/gpu_command_buffer_stub.cc b/content/common/gpu/gpu_command_buffer_stub.cc
|
| index 1e89262cf69d59725c83f582b379bdcc09af2c94..d6e245dc6cb761ff8ebe326c7ac81b4024b51627 100644
|
| --- a/content/common/gpu/gpu_command_buffer_stub.cc
|
| +++ b/content/common/gpu/gpu_command_buffer_stub.cc
|
| @@ -360,23 +360,16 @@ void GpuCommandBufferStub::Destroy() {
|
| destruction_observers_,
|
| OnWillDestroyStub());
|
|
|
| - scoped_refptr<gfx::GLContext> context;
|
| if (decoder_) {
|
| - context = decoder_->GetGLContext();
|
| + // The surface destructor should be called with a current context.
|
| + // Therefore release the stub's reference before destroying the decoder,
|
| + // because the latter will release the context.
|
| + surface_ = NULL;
|
| decoder_->Destroy(have_context);
|
| decoder_.reset();
|
| }
|
|
|
| command_buffer_.reset();
|
| -
|
| - // Make sure that context_ is current while we destroy surface_, because
|
| - // surface_ may have GL resources that it needs to destroy, and will need
|
| - // context_ to be current in order to not leak these resources.
|
| - if (context)
|
| - context->MakeCurrent(surface_.get());
|
| - surface_ = NULL;
|
| - if (context)
|
| - context->ReleaseCurrent(NULL);
|
| }
|
|
|
| void GpuCommandBufferStub::OnInitializeFailed(IPC::Message* reply_message) {
|
|
|