diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2014-12-10 18:24:23 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2014-12-10 18:24:23 +0100 |
commit | 55b68ad017d61f2fd4a3408632007880aabd05fe (patch) | |
tree | 904169ac3e8b6c064440b7e0f710db7a3f689543 /vcl | |
parent | 4de09a9efdb62cf90ce18662852e556cf7148e14 (diff) |
Instantiate ImplSVData on demand
Change-Id: I661949a8635a2ed1a1efda77ced48a0fa9f6722e
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/svdata.hxx | 7 | ||||
-rw-r--r-- | vcl/source/app/svapp.cxx | 3 | ||||
-rw-r--r-- | vcl/source/app/svdata.cxx | 20 | ||||
-rw-r--r-- | vcl/source/app/svmain.cxx | 3 | ||||
-rw-r--r-- | vcl/source/helper/lazydelete.cxx | 5 |
5 files changed, 10 insertions, 28 deletions
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx index 5fb496be3d6a..683f40d908fb 100644 --- a/vcl/inc/svdata.hxx +++ b/vcl/inc/svdata.hxx @@ -300,6 +300,8 @@ struct BlendFrameCache struct ImplSVData { + ImplSVData(); + SalData* mpSalData; SalInstance* mpDefInst; // Default SalInstance Application* mpApp; // pApp @@ -339,9 +341,7 @@ struct ImplSVData Link maDeInitHook; }; -void ImplInitSVData(); void ImplDeInitSVData(); -void ImplDestroySVData(); VCL_PLUGIN_PUBLIC vcl::Window* ImplGetDefaultWindow(); VCL_PLUGIN_PUBLIC ResMgr* ImplGetResMgr(); VCL_PLUGIN_PUBLIC ResId VclResId( sal_Int32 nId ); // throws std::bad_alloc if no res mgr @@ -357,8 +357,7 @@ void ImplFreeEventHookData(); bool ImplCallPreNotify( NotifyEvent& rEvt ); -extern VCL_PLUGIN_PUBLIC ImplSVData* pImplSVData; -inline ImplSVData* ImplGetSVData() { return pImplSVData; } +VCL_PLUGIN_PUBLIC ImplSVData* ImplGetSVData(); VCL_PLUGIN_PUBLIC void ImplHideSplash(); bool ImplInitAccessBridge(); diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx index 98b74540dd31..f7a696f760d5 100644 --- a/vcl/source/app/svapp.cxx +++ b/vcl/source/app/svapp.cxx @@ -194,8 +194,6 @@ Application::Application() OUString aVar("LIBO_VERSION"), aValue(LIBO_VERSION_DOTTED); osl_setEnvironment(aVar.pData, aValue.pData); - if( ! ImplGetSVData() ) - ImplInitSVData(); ImplGetSVData()->mpApp = this; InitSalData(); } @@ -205,7 +203,6 @@ Application::~Application() ImplDeInitSVData(); DeInitSalData(); ImplGetSVData()->mpApp = NULL; - ImplDestroySVData(); } int Application::Main() diff --git a/vcl/source/app/svdata.cxx b/vcl/source/app/svdata.cxx index 59b2d23cd2bc..c539a7637866 100644 --- a/vcl/source/app/svdata.cxx +++ b/vcl/source/app/svdata.cxx @@ -64,8 +64,9 @@ namespace public rtl::Static<ImplSVData, private_aImplSVData> {}; } -// static SV-Data -ImplSVData* pImplSVData = NULL; +ImplSVData* ImplGetSVData() { + return &private_aImplSVData::get(); +} SalSystem* ImplGetSalSystem() { @@ -75,14 +76,12 @@ SalSystem* ImplGetSalSystem() return pSVData->mpSalSystem; } -void ImplInitSVData() +ImplSVData::ImplSVData() { - pImplSVData = &private_aImplSVData::get(); - // init global instance data - memset( pImplSVData, 0, sizeof( ImplSVData ) ); - pImplSVData->maHelpData.mbAutoHelpId = true; - pImplSVData->maNWFData.maMenuBarHighlightTextColor = Color( COL_TRANSPARENT ); + memset( this, 0, sizeof( ImplSVData ) ); + maHelpData.mbAutoHelpId = true; + maNWFData.maMenuBarHighlightTextColor = Color( COL_TRANSPARENT ); } void ImplDeInitSVData() @@ -104,11 +103,6 @@ void ImplDeInitSVData() delete pSVData->mpPaperNames, pSVData->mpPaperNames = NULL; } -void ImplDestroySVData() -{ - pImplSVData = NULL; -} - vcl::Window* ImplGetDefaultWindow() { ImplSVData* pSVData = ImplGetSVData(); diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx index c1456ad8d46d..7636738abbc6 100644 --- a/vcl/source/app/svmain.cxx +++ b/vcl/source/app/svmain.cxx @@ -240,9 +240,6 @@ bool InitVCL() EmbeddedFontsHelper::clearTemporaryFontFiles(); - if( ! ImplGetSVData() ) - ImplInitSVData(); - if( !ImplGetSVData()->mpApp ) { pOwnSvApp = new Application(); diff --git a/vcl/source/helper/lazydelete.cxx b/vcl/source/helper/lazydelete.cxx index 7ce8d1a56c11..45ea7e091820 100644 --- a/vcl/source/helper/lazydelete.cxx +++ b/vcl/source/helper/lazydelete.cxx @@ -80,11 +80,6 @@ DeleteOnDeinitBase::~DeleteOnDeinitBase() void DeleteOnDeinitBase::addDeinitContainer( DeleteOnDeinitBase* i_pContainer ) { ImplSVData* pSVData = ImplGetSVData(); - if( ! pSVData ) - { - ImplInitSVData(); - pSVData = ImplGetSVData(); - } DBG_ASSERT( ! pSVData->mbDeInit, "DeleteOnDeinit added after DeiInitVCL !" ); if( pSVData->mbDeInit ) |