summaryrefslogtreecommitdiff
path: root/vcl/source/app/svmain.cxx
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@canonical.com>2017-03-29 00:01:04 +0200
committerBjörn Michaelsen <bjoern.michaelsen@canonical.com>2017-04-04 14:35:16 +0000
commit3ecb9b4bd7dc70664bbb8d7c957ea8dc5015223f (patch)
tree3446bd81bcd905833fb46f1660bb2d6e095d358b /vcl/source/app/svmain.cxx
parent0144600bf5b5d8093f6a720ad21df221f08bce9e (diff)
tdf#99352: assert on stray VclPtrs past DeInit
- ignore on Windows for now, as it is acting up Change-Id: I98dbb887ed556b58188870c3eb3de1327bc58109 Reviewed-on: https://gerrit.libreoffice.org/35816 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
Diffstat (limited to 'vcl/source/app/svmain.cxx')
-rw-r--r--vcl/source/app/svmain.cxx42
1 files changed, 42 insertions, 0 deletions
diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
index c97080e46c1c..781f6b707ce1 100644
--- a/vcl/source/app/svmain.cxx
+++ b/vcl/source/app/svmain.cxx
@@ -46,6 +46,11 @@
#include <vcl/lazydelete.hxx>
#include <vcl/embeddedfontshelper.hxx>
#include <vcl/debugevent.hxx>
+#include <vcl/dialog.hxx>
+#include <vcl/menu.hxx>
+#include <vcl/virdev.hxx>
+#include <vcl/print.hxx>
+#include <scrwnd.hxx>
#ifdef _WIN32
#include <svsys.h>
@@ -267,6 +272,17 @@ static bool isInitVCL()
pSVData->mpDefInst != nullptr;
}
+#ifdef DBG_UTIL
+namespace vclmain
+{
+ bool isAlive()
+ {
+ return ImplGetSVData()->mpDefInst;
+ }
+}
+#endif
+
+
bool InitVCL()
{
if( pExceptionHandler != nullptr )
@@ -364,6 +380,7 @@ void DeInitVCL()
::comphelper::JoinAsyncEventNotifiers();
}
ImplSVData* pSVData = ImplGetSVData();
+
// lp#1560328: clear cache before disposing rest of VCL
if(pSVData->mpBlendFrameCache)
pSVData->mpBlendFrameCache->m_aLastResult.Clear();
@@ -545,6 +562,31 @@ void DeInitVCL()
delete pSVData->mpSalTimer;
pSVData->mpSalTimer = nullptr;
+ pSVData->mpDefaultWin = nullptr;
+ pSVData->mpIntroWindow = nullptr;
+ pSVData->maAppData.mpActivePopupMenu = nullptr;
+ pSVData->maAppData.mpWheelWindow = nullptr;
+ pSVData->maGDIData.mpFirstWinGraphics = nullptr;
+ pSVData->maGDIData.mpLastWinGraphics = nullptr;
+ pSVData->maGDIData.mpFirstVirGraphics = nullptr;
+ pSVData->maGDIData.mpLastVirGraphics = nullptr;
+ pSVData->maGDIData.mpFirstPrnGraphics = nullptr;
+ pSVData->maGDIData.mpLastPrnGraphics = nullptr;
+ pSVData->maGDIData.mpFirstVirDev = nullptr;
+ pSVData->maGDIData.mpLastVirDev = nullptr;
+ pSVData->maGDIData.mpFirstPrinter = nullptr;
+ pSVData->maGDIData.mpLastPrinter = nullptr;
+ pSVData->maWinData.mpFirstFrame = nullptr;
+ pSVData->maWinData.mpAppWin = nullptr;
+ pSVData->maWinData.mpActiveApplicationFrame = nullptr;
+ pSVData->maWinData.mpCaptureWin = nullptr;
+ pSVData->maWinData.mpLastDeacWin = nullptr;
+ pSVData->maWinData.mpFirstFloat = nullptr;
+ pSVData->maWinData.mpLastExecuteDlg = nullptr;
+ pSVData->maWinData.mpExtTextInputWin = nullptr;
+ pSVData->maWinData.mpTrackWin = nullptr;
+ pSVData->maWinData.mpAutoScrollWin = nullptr;
+ pSVData->maWinData.mpLastWheelWindow = nullptr;
// Deinit Sal
if (pSVData->mpDefInst)
{