summaryrefslogtreecommitdiffstats
path: root/views
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-07 19:01:25 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-07 19:01:25 +0000
commite247879c4ad73c55db59ba20d7163ce48230e902 (patch)
tree136e72837d6ccf7cce497942300c1a807f0958fd /views
parent89a79ef49b97f26e15f5e22bdb2a63494bce1cff (diff)
downloadchromium_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.cc7
-rw-r--r--views/widget/native_widget_win.cc2
-rw-r--r--views/widget/widget.cc4
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