diff options
author | Pale Moon <git-repo@palemoon.org> | 2018-03-15 10:49:25 +0100 |
---|---|---|
committer | Pale Moon <git-repo@palemoon.org> | 2018-03-15 10:49:25 +0100 |
commit | 78818fa7c841e9d897c09582574109e834582740 (patch) | |
tree | 45993b129bfeba09c83782c7b026d16249f069c5 | |
parent | 3be23ee15bc9e0b981efdf881b172ee3adb496a1 (diff) | |
download | palemoon-gre-78818fa7c841e9d897c09582574109e834582740.tar.gz |
Use mDestroyRefCount in a more straightforward way.
-rw-r--r-- | layout/base/nsDocumentViewer.cpp | 7 | ||||
-rw-r--r-- | layout/base/nsIDocumentViewerPrint.h | 2 | ||||
-rw-r--r-- | layout/printing/nsPagePrintTimer.cpp | 10 |
3 files changed, 10 insertions, 9 deletions
diff --git a/layout/base/nsDocumentViewer.cpp b/layout/base/nsDocumentViewer.cpp index 65649504c..157db20b5 100644 --- a/layout/base/nsDocumentViewer.cpp +++ b/layout/base/nsDocumentViewer.cpp @@ -1617,7 +1617,6 @@ nsDocumentViewer::Destroy() // We also keep the viewer from being cached in session history, since // we require all documents there to be sanitized. if (mDestroyRefCount != 0) { - --mDestroyRefCount; return NS_OK; } @@ -4305,6 +4304,12 @@ nsDocumentViewer::IncrementDestroyRefCount() ++mDestroyRefCount; } +void +nsDocumentViewer::DecrementDestroyRefCount() +{ + --mDestroyRefCount; +} + //------------------------------------------------------------ #if defined(NS_PRINTING) && defined(NS_PRINT_PREVIEW) diff --git a/layout/base/nsIDocumentViewerPrint.h b/layout/base/nsIDocumentViewerPrint.h index 5ddb516e4..3ca625162 100644 --- a/layout/base/nsIDocumentViewerPrint.h +++ b/layout/base/nsIDocumentViewerPrint.h @@ -40,6 +40,7 @@ public: virtual nsresult CreateStyleSet(nsIDocument* aDocument, nsStyleSet** aStyleSet) = 0; virtual void IncrementDestroyRefCount() = 0; + virtual void DecrementDestroyRefCount() = 0; virtual void ReturnToGalleyPresentation() = 0; @@ -74,6 +75,7 @@ NS_DEFINE_STATIC_IID_ACCESSOR(nsIDocumentViewerPrint, virtual bool GetIsPrintPreview() override; \ virtual nsresult CreateStyleSet(nsIDocument* aDocument, nsStyleSet** aStyleSet) override; \ virtual void IncrementDestroyRefCount() override; \ + virtual void DecrementDestroyRefCount() override; \ virtual void ReturnToGalleyPresentation() override; \ virtual void OnDonePrinting() override; \ virtual bool IsInitializedForPrintPreview() override; \ diff --git a/layout/printing/nsPagePrintTimer.cpp b/layout/printing/nsPagePrintTimer.cpp index 01d44d86d..9b897092e 100644 --- a/layout/printing/nsPagePrintTimer.cpp +++ b/layout/printing/nsPagePrintTimer.cpp @@ -12,14 +12,8 @@ NS_IMPL_ISUPPORTS_INHERITED(nsPagePrintTimer, nsRunnable, nsITimerCallback) nsPagePrintTimer::~nsPagePrintTimer() { - // "Destroy" the document viewer; this normally doesn't actually - // destroy it because of the IncrementDestroyRefCount call below - // XXX This is messy; the document viewer should use a single approach - // to keep itself alive during printing - nsCOMPtr<nsIContentViewer> cv(do_QueryInterface(mDocViewerPrint)); - if (cv) { - cv->Destroy(); - } + // This matches IncrementDestroyRefCount() in the ctor. + mDocViewerPrint->DecrementDestroyRefCount(); } nsresult |