diff options
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host_view_win.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host_view_win.cc b/chrome/browser/renderer_host/render_widget_host_view_win.cc index 2ad63e5..5d58849 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_win.cc +++ b/chrome/browser/renderer_host/render_widget_host_view_win.cc @@ -630,6 +630,12 @@ void RenderWidgetHostViewWin::Destroy() { // triggering further destructions. The deletion of this is handled by // OnFinalMessage(); close_on_deactivate_ = false; + + // In case OnFinalMessage() does not get called before DestroyWindow() + // returns, make sure we don't try to access |render_widget_host_| later. + // http://crbug.com/24248 + render_widget_host_ = NULL; + DestroyWindow(); } @@ -1266,7 +1272,8 @@ LRESULT RenderWidgetHostViewWin::OnGetObject(UINT message, WPARAM wparam, } void RenderWidgetHostViewWin::OnFinalMessage(HWND window) { - render_widget_host_->ViewDestroyed(); + if (render_widget_host_) + render_widget_host_->ViewDestroyed(); delete this; } |