diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-07 19:01:25 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-07 19:01:25 +0000 |
commit | e247879c4ad73c55db59ba20d7163ce48230e902 (patch) | |
tree | 136e72837d6ccf7cce497942300c1a807f0958fd /views | |
parent | 89a79ef49b97f26e15f5e22bdb2a63494bce1cff (diff) | |
download | chromium_src-e247879c4ad73c55db59ba20d7163ce48230e902.zip chromium_src-e247879c4ad73c55db59ba20d7163ce48230e902.tar.gz chromium_src-e247879c4ad73c55db59ba20d7163ce48230e902.tar.bz2 |
Fix crashes in EnterpriseEnrollmentScreenTest.TestCancel. This is independent of any tfarina-induced bustage.
BUG=none
TEST=none
TBR=sky
Review URL: http://codereview.chromium.org/7313027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91738 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views')
-rw-r--r-- | views/widget/native_widget_gtk.cc | 7 | ||||
-rw-r--r-- | views/widget/native_widget_win.cc | 2 | ||||
-rw-r--r-- | views/widget/widget.cc | 4 |
3 files changed, 8 insertions, 5 deletions
diff --git a/views/widget/native_widget_gtk.cc b/views/widget/native_widget_gtk.cc index fe03d3b..eb614ea 100644 --- a/views/widget/native_widget_gtk.cc +++ b/views/widget/native_widget_gtk.cc @@ -393,12 +393,15 @@ NativeWidgetGtk::NativeWidgetGtk(internal::NativeWidgetDelegate* delegate) } NativeWidgetGtk::~NativeWidgetGtk() { - DCHECK(widget_ == NULL); // We need to delete the input method before calling DestroyRootView(), // because it'll set focus_manager_ to NULL. input_method_.reset(); - if (ownership_ == Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET) + if (ownership_ == Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET) { + DCHECK(widget_ == NULL); delete delegate_; + } else { + CloseNow(); + } } GtkWindow* NativeWidgetGtk::GetTransientParent() const { diff --git a/views/widget/native_widget_win.cc b/views/widget/native_widget_win.cc index d57c9ec..877434c 100644 --- a/views/widget/native_widget_win.cc +++ b/views/widget/native_widget_win.cc @@ -392,6 +392,8 @@ NativeWidgetWin::~NativeWidgetWin() { input_method_.reset(); if (ownership_ == Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET) delete delegate_; + else + CloseNow(); } // static diff --git a/views/widget/widget.cc b/views/widget/widget.cc index c359998..c640c39 100644 --- a/views/widget/widget.cc +++ b/views/widget/widget.cc @@ -153,10 +153,8 @@ Widget::~Widget() { DestroyRootView(); - if (ownership_ == InitParams::WIDGET_OWNS_NATIVE_WIDGET) { - CloseNow(); + if (ownership_ == InitParams::WIDGET_OWNS_NATIVE_WIDGET) delete native_widget_; - } } // static |