From 1dab0c3072355ac83b7981c225748b842d38cbdf Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Fri, 16 Dec 2016 10:54:11 +1100 Subject: [PATCH] Bug 1299335 (part 3) - Streamline nsIWidget::SetParent. r=mstange. This patch removes its return value, because none of the call sites check it except for one non-vital assertion. --HG-- extra : rebase_source : 3471c4e22394b8a05c6708d0f8469686ffad9814 --- view/nsViewManager.cpp | 6 +----- widget/PluginWidgetProxy.cpp | 3 +-- widget/PluginWidgetProxy.h | 2 +- widget/android/nsWindow.cpp | 6 ++---- widget/android/nsWindow.h | 2 +- widget/cocoa/nsChildView.h | 2 +- widget/cocoa/nsChildView.mm | 10 ++++------ widget/gtk/nsWindow.cpp | 7 +++---- widget/gtk/nsWindow.h | 2 +- widget/nsBaseWidget.cpp | 12 ------------ widget/nsBaseWidget.h | 2 +- widget/nsIWidget.h | 2 +- widget/windows/nsWindow.cpp | 6 +++--- widget/windows/nsWindow.h | 2 +- 14 files changed, 21 insertions(+), 43 deletions(-) diff --git a/view/nsViewManager.cpp b/view/nsViewManager.cpp index a3c61e313c15..4717f24934ab 100644 --- a/view/nsViewManager.cpp +++ b/view/nsViewManager.cpp @@ -836,11 +836,7 @@ void nsViewManager::ReparentChildWidgets(nsView* aView, nsIWidget *aNewWidget) if (parentWidget) { // Child widget if (parentWidget != aNewWidget) { -#ifdef DEBUG - nsresult rv = -#endif - widget->SetParent(aNewWidget); - NS_ASSERTION(NS_SUCCEEDED(rv), "SetParent failed!"); + widget->SetParent(aNewWidget); } } else { // Toplevel widget (popup, dialog, etc) diff --git a/widget/PluginWidgetProxy.cpp b/widget/PluginWidgetProxy.cpp index 679bf29e3f3c..9fbe89d1b2ec 100644 --- a/widget/PluginWidgetProxy.cpp +++ b/widget/PluginWidgetProxy.cpp @@ -86,7 +86,7 @@ PluginWidgetProxy::Create(nsIWidget* aParent, return NS_OK; } -NS_IMETHODIMP +void PluginWidgetProxy::SetParent(nsIWidget* aNewParent) { nsCOMPtr kungFuDeathGrip(this); @@ -98,7 +98,6 @@ PluginWidgetProxy::SetParent(nsIWidget* aNewParent) aNewParent->AddChild(this); } mParent = aNewParent; - return NS_OK; } nsIWidget* diff --git a/widget/PluginWidgetProxy.h b/widget/PluginWidgetProxy.h index 3fb86a516280..8dafe48bb591 100644 --- a/widget/PluginWidgetProxy.h +++ b/widget/PluginWidgetProxy.h @@ -42,7 +42,7 @@ public: override; virtual void Destroy() override; NS_IMETHOD SetFocus(bool aRaise = false) override; - NS_IMETHOD SetParent(nsIWidget* aNewParent) override; + virtual void SetParent(nsIWidget* aNewParent) override; virtual nsIWidget* GetParent(void) override; virtual void* GetNativeData(uint32_t aDataType) override; diff --git a/widget/android/nsWindow.cpp b/widget/android/nsWindow.cpp index 9f198d66ddc0..f307da260e43 100644 --- a/widget/android/nsWindow.cpp +++ b/widget/android/nsWindow.cpp @@ -1632,11 +1632,11 @@ nsWindow::RedrawAll() } } -NS_IMETHODIMP +void nsWindow::SetParent(nsIWidget *aNewParent) { if ((nsIWidget*)mParent == aNewParent) - return NS_OK; + return; // If we had a parent before, remove ourselves from its list of // children. @@ -1651,8 +1651,6 @@ nsWindow::SetParent(nsIWidget *aNewParent) // if we are now in the toplevel window's hierarchy, schedule a redraw if (FindTopLevel() == nsWindow::TopWindow()) RedrawAll(); - - return NS_OK; } nsIWidget* diff --git a/widget/android/nsWindow.h b/widget/android/nsWindow.h index b61a9b495abe..e5ac5e143b68 100644 --- a/widget/android/nsWindow.h +++ b/widget/android/nsWindow.h @@ -158,7 +158,7 @@ public: nsWidgetInitData* aInitData) override; virtual void Destroy() override; NS_IMETHOD ConfigureChildren(const nsTArray&) override; - NS_IMETHOD SetParent(nsIWidget* aNewParent) override; + virtual void SetParent(nsIWidget* aNewParent) override; virtual nsIWidget *GetParent(void) override; virtual float GetDPI() override; virtual double GetDefaultScaleInternal() override; diff --git a/widget/cocoa/nsChildView.h b/widget/cocoa/nsChildView.h index bd926312b765..019a1fb68d69 100644 --- a/widget/cocoa/nsChildView.h +++ b/widget/cocoa/nsChildView.h @@ -309,7 +309,7 @@ public: NS_IMETHOD Show(bool aState) override; virtual bool IsVisible() const override; - NS_IMETHOD SetParent(nsIWidget* aNewParent) override; + virtual void SetParent(nsIWidget* aNewParent) override; virtual nsIWidget* GetParent(void) override; virtual float GetDPI() override; diff --git a/widget/cocoa/nsChildView.mm b/widget/cocoa/nsChildView.mm index 9bf3121012f7..40eb8c494173 100644 --- a/widget/cocoa/nsChildView.mm +++ b/widget/cocoa/nsChildView.mm @@ -739,13 +739,13 @@ NS_IMETHODIMP nsChildView::Show(bool aState) } // Change the parent of this widget -NS_IMETHODIMP +void nsChildView::SetParent(nsIWidget* aNewParent) { - NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT; + NS_OBJC_BEGIN_TRY_ABORT_BLOCK; if (mOnDestroyCalled) - return NS_OK; + return; nsCOMPtr kungFuDeathGrip(this); @@ -766,9 +766,7 @@ nsChildView::SetParent(nsIWidget* aNewParent) mParentWidget->AddChild(this); } - return NS_OK; - - NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT; + NS_OBJC_END_TRY_ABORT_BLOCK; } void diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp index bffaf18e7634..71be1a325c79 100644 --- a/widget/gtk/nsWindow.cpp +++ b/widget/gtk/nsWindow.cpp @@ -831,12 +831,12 @@ nsWindow::GetDefaultScaleInternal() return GdkScaleFactor() * gfxPlatformGtk::GetDPIScale(); } -NS_IMETHODIMP +void nsWindow::SetParent(nsIWidget *aNewParent) { if (mContainer || !mGdkWindow) { NS_NOTREACHED("nsWindow::SetParent called illegally"); - return NS_ERROR_NOT_IMPLEMENTED; + return; } nsCOMPtr kungFuDeathGrip = this; @@ -852,7 +852,7 @@ nsWindow::SetParent(nsIWidget *aNewParent) // reparent. MOZ_ASSERT(gdk_window_is_destroyed(mGdkWindow), "live GdkWindow with no widget"); - return NS_OK; + return; } if (aNewParent) { @@ -868,7 +868,6 @@ nsWindow::SetParent(nsIWidget *aNewParent) ReparentNativeWidgetInternal(aNewParent, newContainer, newParentWindow, oldContainer); } - return NS_OK; } bool diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h index 6b6ebb0d15e3..a88d5a0edca2 100644 --- a/widget/gtk/nsWindow.h +++ b/widget/gtk/nsWindow.h @@ -107,7 +107,7 @@ public: { return mozilla::DesktopToLayoutDeviceScale(1.0); } - virtual nsresult SetParent(nsIWidget* aNewParent) override; + virtual void SetParent(nsIWidget* aNewParent) override; virtual void SetModal(bool aModal) override; virtual bool IsVisible() const override; virtual void ConstrainPosition(bool aAllowSlop, diff --git a/widget/nsBaseWidget.cpp b/widget/nsBaseWidget.cpp index 6e4c9d6d488b..ab659c9a8c02 100644 --- a/widget/nsBaseWidget.cpp +++ b/widget/nsBaseWidget.cpp @@ -538,18 +538,6 @@ void nsBaseWidget::Destroy() #endif } - -//------------------------------------------------------------------------- -// -// Set this nsBaseWidget's parent -// -//------------------------------------------------------------------------- -NS_IMETHODIMP nsBaseWidget::SetParent(nsIWidget* aNewParent) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - - //------------------------------------------------------------------------- // // Get this nsBaseWidget parent diff --git a/widget/nsBaseWidget.h b/widget/nsBaseWidget.h index 0c9ffdd0eea0..2272e47f6575 100644 --- a/widget/nsBaseWidget.h +++ b/widget/nsBaseWidget.h @@ -149,7 +149,7 @@ public: virtual nsIWidgetListener* GetWidgetListener() override; virtual void SetWidgetListener(nsIWidgetListener* alistener) override; virtual void Destroy() override; - NS_IMETHOD SetParent(nsIWidget* aNewParent) override; + virtual void SetParent(nsIWidget* aNewParent) override {}; virtual nsIWidget* GetParent(void) override; virtual nsIWidget* GetTopLevelWidget() override; virtual nsIWidget* GetSheetWindowParent(void) override; diff --git a/widget/nsIWidget.h b/widget/nsIWidget.h index d84bb593d51d..b5dfa4bd45b2 100644 --- a/widget/nsIWidget.h +++ b/widget/nsIWidget.h @@ -523,7 +523,7 @@ class nsIWidget : public nsISupports * * @param aNewParent new parent */ - NS_IMETHOD SetParent(nsIWidget* aNewParent) = 0; + virtual void SetParent(nsIWidget* aNewParent) = 0; /** * Return the parent Widget of this Widget or nullptr if this is a diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp index 1cb527b3cf1a..9427f270defd 100644 --- a/widget/windows/nsWindow.cpp +++ b/widget/windows/nsWindow.cpp @@ -1145,7 +1145,8 @@ void nsWindow::SubclassWindow(BOOL bState) **************************************************************/ // Get and set parent widgets -NS_IMETHODIMP nsWindow::SetParent(nsIWidget *aNewParent) +void +nsWindow::SetParent(nsIWidget *aNewParent) { mParent = aNewParent; @@ -1157,13 +1158,12 @@ NS_IMETHODIMP nsWindow::SetParent(nsIWidget *aNewParent) if (aNewParent) { ReparentNativeWidget(aNewParent); aNewParent->AddChild(this); - return NS_OK; + return; } if (mWnd) { // If we have no parent, SetParent should return the desktop. VERIFY(::SetParent(mWnd, nullptr)); } - return NS_OK; } void diff --git a/widget/windows/nsWindow.h b/widget/windows/nsWindow.h index dbec36d699fb..2604c4f7c3a8 100644 --- a/widget/windows/nsWindow.h +++ b/widget/windows/nsWindow.h @@ -104,7 +104,7 @@ public: nsWidgetInitData* aInitData = nullptr) override; virtual void Destroy() override; - NS_IMETHOD SetParent(nsIWidget *aNewParent) override; + virtual void SetParent(nsIWidget *aNewParent) override; virtual nsIWidget* GetParent(void) override; virtual float GetDPI() override; double GetDefaultScaleInternal() final;