Index: content/browser/compositor/surface_display_output_surface.cc |
diff --git a/content/browser/compositor/surface_display_output_surface.cc b/content/browser/compositor/surface_display_output_surface.cc |
index 71ab32e8b4e444504658299df9594a907d1101d6..2e20c97c1d028a831c332af9b27074603e1f444d 100644 |
--- a/content/browser/compositor/surface_display_output_surface.cc |
+++ b/content/browser/compositor/surface_display_output_surface.cc |
@@ -27,6 +27,10 @@ SurfaceDisplayOutputSurface::SurfaceDisplayOutputSurface( |
} |
SurfaceDisplayOutputSurface::~SurfaceDisplayOutputSurface() { |
+ client_ = NULL; |
+ if (!surface_id_.is_null()) { |
+ factory_.Destroy(surface_id_); |
+ } |
} |
void SurfaceDisplayOutputSurface::SwapBuffers(cc::CompositorFrame* frame) { |
@@ -57,7 +61,8 @@ void SurfaceDisplayOutputSurface::ReturnResources( |
const cc::ReturnedResourceArray& resources) { |
cc::CompositorFrameAck ack; |
ack.resources = resources; |
- client_->ReclaimResources(&ack); |
+ if (client_) |
+ client_->ReclaimResources(&ack); |
} |
} // namespace content |