From a227e47b351051fdda37b7d887605f0f95d3169d Mon Sep 17 00:00:00 2001 From: Tatiana Meshkova Date: Fri, 20 Aug 2010 18:12:14 -0700 Subject: [PATCH] Bug 589297 - nsWindow::GetViewWidget crashes when can't find view. r=romaxa a=npodb --- widget/src/qt/nsWindow.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/widget/src/qt/nsWindow.cpp b/widget/src/qt/nsWindow.cpp index 278ecdd39c4c..293c54e21aec 100644 --- a/widget/src/qt/nsWindow.cpp +++ b/widget/src/qt/nsWindow.cpp @@ -674,7 +674,7 @@ nsWindow::Update() QWidget* nsWindow::GetViewWidget() { NS_ASSERTION(mWidget, "Calling GetViewWidget without mWidget created"); - if (!mWidget || !mWidget->scene()) + if (!mWidget || !mWidget->scene() || !mWidget->scene()->views().size()) return nsnull; NS_ASSERTION(mWidget->scene()->views().size() == 1, "Not exactly one view for our scene!"); @@ -1739,8 +1739,11 @@ nsWindow::NativeResize(PRInt32 aWidth, PRInt32 aHeight, PRBool aRepaint) mNeedsResize = PR_FALSE; #ifndef MOZ_ENABLE_MEEGOTOUCH - if (mIsTopLevel && XRE_GetProcessType() == GeckoProcessType_Default) - GetViewWidget()->resize(aWidth, aHeight); + if (mIsTopLevel && XRE_GetProcessType() == GeckoProcessType_Default) { + QWidget *widget = GetViewWidget(); + NS_ENSURE_TRUE(widget,); + widget->resize(aWidth, aHeight); + } #endif mWidget->resize( aWidth, aHeight); @@ -1762,8 +1765,11 @@ nsWindow::NativeResize(PRInt32 aX, PRInt32 aY, #ifndef MOZ_ENABLE_MEEGOTOUCH if (mIsTopLevel) { - if (XRE_GetProcessType() == GeckoProcessType_Default) - GetViewWidget()->setGeometry(aX, aY, aWidth, aHeight); + if (XRE_GetProcessType() == GeckoProcessType_Default) { + QWidget *widget = GetViewWidget(); + NS_ENSURE_TRUE(widget,); + widget->setGeometry(aX, aY, aWidth, aHeight); + } } #endif