diff --git a/extensions/widgetutils/src/nsWidgetUtils.cpp b/extensions/widgetutils/src/nsWidgetUtils.cpp index 1c17043fa445..ec6ccbf78717 100644 --- a/extensions/widgetutils/src/nsWidgetUtils.cpp +++ b/extensions/widgetutils/src/nsWidgetUtils.cpp @@ -89,7 +89,7 @@ private: static void StopPanningCallback(nsITimer *timer, void *closure); nsCOMPtr mWidget; - nsCOMPtr mViewManager; + nsRefPtr mViewManager; nsCOMPtr mTimer; }; diff --git a/layout/base/nsCSSFrameConstructor.cpp b/layout/base/nsCSSFrameConstructor.cpp index 21a9a2f24dc2..271102f07fcd 100644 --- a/layout/base/nsCSSFrameConstructor.cpp +++ b/layout/base/nsCSSFrameConstructor.cpp @@ -12023,7 +12023,7 @@ nsCSSFrameConstructor::RebuildAllStyleData(nsChangeHint aExtraHint) return; // Make sure that the viewmanager will outlive the presshell - nsCOMPtr vm = mPresShell->GetViewManager(); + nsRefPtr vm = mPresShell->GetViewManager(); // Processing the style changes could cause a flush that propagates to // the parent frame and thus destroys the pres shell. diff --git a/layout/base/nsDocumentViewer.cpp b/layout/base/nsDocumentViewer.cpp index 8d434d5bfc74..d1a91c4702fa 100644 --- a/layout/base/nsDocumentViewer.cpp +++ b/layout/base/nsDocumentViewer.cpp @@ -397,7 +397,7 @@ protected: // so they will be destroyed in the reverse order (pinkerton, scc) nsCOMPtr mDocument; nsCOMPtr mWindow; // may be null - nsCOMPtr mViewManager; + nsRefPtr mViewManager; nsRefPtr mPresContext; nsCOMPtr mPresShell; diff --git a/layout/base/nsPresShell.cpp b/layout/base/nsPresShell.cpp index fd3ab466f9f4..0d50d8092c05 100644 --- a/layout/base/nsPresShell.cpp +++ b/layout/base/nsPresShell.cpp @@ -1857,7 +1857,7 @@ PresShell::ResizeReflowIgnoreOverride(nscoord aWidth, nscoord aHeight) return NS_ERROR_NOT_AVAILABLE; } - nsCOMPtr viewManagerDeathGrip = mViewManager; + nsRefPtr viewManagerDeathGrip = mViewManager; // Take this ref after viewManager so it'll make sure to go away first nsCOMPtr kungFuDeathGrip(this); @@ -3808,7 +3808,7 @@ PresShell::FlushPendingNotifications(mozilla::ChangesToFlush aFlush) NS_ASSERTION(!isSafeToFlush || mViewManager, "Must have view manager"); // Make sure the view manager stays alive. - nsCOMPtr viewManagerDeathGrip = mViewManager; + nsRefPtr viewManagerDeathGrip = mViewManager; if (isSafeToFlush && mViewManager) { // Processing pending notifications can kill us, and some callers only // hold weak refs when calling FlushPendingNotifications(). :( @@ -8270,7 +8270,7 @@ PresShell::VerifyIncrementalReflow() nsIWidget* parentWidget = rootView->GetWidget(); // Create a new view manager. - nsCOMPtr vm = do_CreateInstance(kViewManagerCID); + nsRefPtr vm = do_CreateInstance(kViewManagerCID); NS_ENSURE_TRUE(vm, false); rv = vm->Init(dc); NS_ENSURE_SUCCESS(rv, false); diff --git a/layout/base/nsRefreshDriver.cpp b/layout/base/nsRefreshDriver.cpp index 00af04528c54..66cd63ae4f33 100644 --- a/layout/base/nsRefreshDriver.cpp +++ b/layout/base/nsRefreshDriver.cpp @@ -951,7 +951,7 @@ nsRefreshDriver::Tick(int64_t aNowEpoch, TimeStamp aNowTime) #endif mViewManagerFlushIsPending = false; - nsCOMPtr vm = mPresContext->GetPresShell()->GetViewManager(); + nsRefPtr vm = mPresContext->GetPresShell()->GetViewManager(); vm->ProcessPendingUpdates(); #ifdef DEBUG_INVALIDATIONS printf("Ending ProcessPendingUpdates\n"); diff --git a/layout/printing/nsPrintObject.h b/layout/printing/nsPrintObject.h index 5f3e4cdfeafc..2ea10001b046 100644 --- a/layout/printing/nsPrintObject.h +++ b/layout/printing/nsPrintObject.h @@ -46,7 +46,7 @@ public: nsRefPtr mPresContext; nsCOMPtr mPresShell; - nsCOMPtr mViewManager; + nsRefPtr mViewManager; nsCOMPtr mContent; PrintObjectType mFrameType; diff --git a/layout/tools/layout-debug/src/nsLayoutDebuggingTools.cpp b/layout/tools/layout-debug/src/nsLayoutDebuggingTools.cpp index dc94218e3810..072b2f216d7d 100644 --- a/layout/tools/layout-debug/src/nsLayoutDebuggingTools.cpp +++ b/layout/tools/layout-debug/src/nsLayoutDebuggingTools.cpp @@ -433,7 +433,7 @@ DumpViewsRecur(nsIDocShell* aDocShell, FILE* out) { #ifdef DEBUG fprintf(out, "docshell=%p \n", static_cast(aDocShell)); - nsCOMPtr vm(view_manager(aDocShell)); + nsRefPtr vm(view_manager(aDocShell)); if (vm) { nsView* root = vm->GetRootView(); if (root) { @@ -524,7 +524,7 @@ nsLayoutDebuggingTools::DumpReflowStats() void nsLayoutDebuggingTools::ForceRefresh() { - nsCOMPtr vm(view_manager(mDocShell)); + nsRefPtr vm(view_manager(mDocShell)); if (!vm) return; nsView* root = vm->GetRootView(); diff --git a/layout/xul/base/src/nsXULPopupManager.cpp b/layout/xul/base/src/nsXULPopupManager.cpp index 32b2b0e50e0c..340fe7ec364a 100644 --- a/layout/xul/base/src/nsXULPopupManager.cpp +++ b/layout/xul/base/src/nsXULPopupManager.cpp @@ -2295,7 +2295,7 @@ nsXULMenuCommandEvent::Run() nsPresContext* presContext = menuFrame->PresContext(); nsCOMPtr shell = presContext->PresShell(); - nsCOMPtr kungFuDeathGrip = shell->GetViewManager(); + nsRefPtr kungFuDeathGrip = shell->GetViewManager(); // Deselect ourselves. if (mCloseMenuMode != CloseMenuMode_None) diff --git a/view/public/nsViewManager.h b/view/public/nsViewManager.h index 685e59c4bda2..c959b7d1f56b 100644 --- a/view/public/nsViewManager.h +++ b/view/public/nsViewManager.h @@ -276,7 +276,7 @@ public: AutoDisableRefresh(const AutoDisableRefresh& aOther); const AutoDisableRefresh& operator=(const AutoDisableRefresh& aOther); - nsCOMPtr mRootVM; + nsRefPtr mRootVM; }; private: diff --git a/view/src/nsView.cpp b/view/src/nsView.cpp index 64949a9cce17..64b9ff50072c 100644 --- a/view/src/nsView.cpp +++ b/view/src/nsView.cpp @@ -953,7 +953,7 @@ nsView::RequestWindowClose(nsIWidget* aWidget) void nsView::WillPaintWindow(nsIWidget* aWidget, bool aWillSendDidPaint) { - nsCOMPtr vm = mViewManager; + nsRefPtr vm = mViewManager; vm->WillPaintWindow(aWidget, aWillSendDidPaint); } @@ -963,7 +963,7 @@ nsView::PaintWindow(nsIWidget* aWidget, nsIntRegion aRegion, uint32_t aFlags) NS_ASSERTION(this == nsView::GetViewFor(aWidget), "wrong view for widget?"); mInAlternatePaint = aFlags & PAINT_IS_ALTERNATE; - nsCOMPtr vm = mViewManager; + nsRefPtr vm = mViewManager; bool result = vm->PaintWindow(aWidget, aRegion, aFlags); // PaintWindow can destroy this via WillPaintWindow notification, so we have // to re-get the view from the widget. @@ -977,7 +977,7 @@ nsView::PaintWindow(nsIWidget* aWidget, nsIntRegion aRegion, uint32_t aFlags) void nsView::DidPaintWindow() { - nsCOMPtr vm = mViewManager; + nsRefPtr vm = mViewManager; vm->DidPaintWindow(); } @@ -1006,7 +1006,7 @@ nsView::HandleEvent(nsGUIEvent* aEvent, bool aUseAttachedEvents) } if (view) { - nsCOMPtr vm = view->GetViewManager(); + nsRefPtr vm = view->GetViewManager(); vm->DispatchEvent(aEvent, view, &result); } diff --git a/widget/gtk2/nsDragService.cpp b/widget/gtk2/nsDragService.cpp index 82b403b4dc74..73900e74ffed 100644 --- a/widget/gtk2/nsDragService.cpp +++ b/widget/gtk2/nsDragService.cpp @@ -269,7 +269,7 @@ GetGtkWindow(nsIDOMDocument *aDocument) if (!presShell) return NULL; - nsCOMPtr vm = presShell->GetViewManager(); + nsRefPtr vm = presShell->GetViewManager(); if (!vm) return NULL; diff --git a/widget/tests/TestWinTSF.cpp b/widget/tests/TestWinTSF.cpp index 6a1aa6d79660..e9f4cc049911 100644 --- a/widget/tests/TestWinTSF.cpp +++ b/widget/tests/TestWinTSF.cpp @@ -3144,7 +3144,7 @@ TestApp::GetWidget(nsIWidget** aWidget) return false; } - nsCOMPtr viewManager = presShell->GetViewManager(); + nsRefPtr viewManager = presShell->GetViewManager(); if (!viewManager) { return false; }