Index: content/common/gpu/client/gpu_video_decode_accelerator_host.cc |
diff --git a/content/common/gpu/client/gpu_video_decode_accelerator_host.cc b/content/common/gpu/client/gpu_video_decode_accelerator_host.cc |
index de43eef617f4693ee44e0da9a938aa1aea0a9e7c..387327b53a165c77d5885267fa4e0e68fc2d0b62 100644 |
--- a/content/common/gpu/client/gpu_video_decode_accelerator_host.cc |
+++ b/content/common/gpu/client/gpu_video_decode_accelerator_host.cc |
@@ -119,13 +119,17 @@ void GpuVideoDecodeAcceleratorHost::Reset() { |
void GpuVideoDecodeAcceleratorHost::Destroy() { |
DCHECK(CalledOnValidThread()); |
- channel_->RemoveRoute(decoder_route_id_); |
+ if (channel_) |
+ channel_->RemoveRoute(decoder_route_id_); |
client_ = NULL; |
Send(new AcceleratedVideoDecoderMsg_Destroy(decoder_route_id_)); |
delete this; |
} |
-GpuVideoDecodeAcceleratorHost::~GpuVideoDecodeAcceleratorHost() {} |
+GpuVideoDecodeAcceleratorHost::~GpuVideoDecodeAcceleratorHost() { |
+ DCHECK(CalledOnValidThread()); |
+ DCHECK(!client_) << "destructor called without Destroy being called!"; |
+} |
void GpuVideoDecodeAcceleratorHost::Send(IPC::Message* message) { |
// After OnChannelError is called, the client should no longer send |