Kaydet (Commit) 55b68ad0 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Instantiate ImplSVData on demand

Change-Id: I661949a8635a2ed1a1efda77ced48a0fa9f6722e
üst 4de09a9e
......@@ -241,7 +241,6 @@ public:
@attention The initialization of the application itself is done in Init()
@see InitSalData is implemented by platform specific code.
ImplInitSVData initializes the global instance data
*/
Application();
......
......@@ -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();
......
......@@ -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()
......
......@@ -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();
......
......@@ -240,9 +240,6 @@ bool InitVCL()
EmbeddedFontsHelper::clearTemporaryFontFiles();
if( ! ImplGetSVData() )
ImplInitSVData();
if( !ImplGetSVData()->mpApp )
{
pOwnSvApp = new Application();
......
......@@ -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 )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment