summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2012-09-24 17:41:51 +0200
committerMiklos Vajna <vmiklos@suse.cz>2012-09-25 07:53:32 +0000
commit3223ae5224ee17a501f251ba88ea3e4debb18e07 (patch)
treefd0f056457f6691cfb545c94e62d88afed66742a /desktop
parentd233567f716594a6b33983e76c537e47a0fade74 (diff)
fdo#54385: Displaying help/version early on UNX requires service manager
This regression was introduced with 6c6358a6822d3562b9b8c7668a7d60d6c644dfe8 "Related fdo#53006: Do not instantiate service manager too early." Change-Id: If22ea3ac6474188bf0792246620e5c705a813445 (cherry picked from commit 2f14e2e67c58fe6948501d57a38cd0d2ad84dfff) Reviewed-on: https://gerrit.libreoffice.org/694 Reviewed-by: Miklos Vajna <vmiklos@suse.cz> Tested-by: Miklos Vajna <vmiklos@suse.cz>
Diffstat (limited to 'desktop')
-rw-r--r--desktop/inc/app.hxx6
-rw-r--r--desktop/source/app/app.cxx2
-rw-r--r--desktop/source/app/appinit.cxx9
-rwxr-xr-xdesktop/source/app/sofficemain.cxx2
4 files changed, 11 insertions, 8 deletions
diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx
index 8805c57ca951..ecfd0143baf8 100644
--- a/desktop/inc/app.hxx
+++ b/desktop/inc/app.hxx
@@ -140,11 +140,11 @@ class Desktop : public Application
void SetSplashScreenText( const ::rtl::OUString& rText );
void SetSplashScreenProgress( sal_Int32 );
- private:
// Bootstrap methods
- static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > CreateApplicationServiceManager();
- // returns a non-null reference or throws an exception
+ static void InitApplicationServiceManager();
+ // throws an exception upon failure
+ private:
void RegisterServices();
void DeregisterServices();
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index ea350ca6fe1d..a5177dd88ff1 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -592,7 +592,7 @@ void Desktop::Init()
// something to enforce this gotcha
try
{
- comphelper::setProcessServiceFactory(CreateApplicationServiceManager());
+ InitApplicationServiceManager();
}
catch (css::uno::Exception & e)
{
diff --git a/desktop/source/app/appinit.cxx b/desktop/source/app/appinit.cxx
index 4b33cb29fa6d..7a32d13c19f2 100644
--- a/desktop/source/app/appinit.cxx
+++ b/desktop/source/app/appinit.cxx
@@ -163,20 +163,21 @@ static bool configureUcb()
return ret;
}
-Reference< XMultiServiceFactory > Desktop::CreateApplicationServiceManager()
+void Desktop::InitApplicationServiceManager()
{
RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::createApplicationServiceManager" );
-
+ Reference<XMultiServiceFactory> sm;
#ifdef ANDROID
rtl::OUString aUnoRc( OUString( "file:///assets/program/unorc" ) );
- return Reference<XMultiServiceFactory>(
+ sm.set(
cppu::defaultBootstrap_InitialComponentContext( aUnoRc )->getServiceManager(),
UNO_QUERY_THROW);
#else
- return Reference<XMultiServiceFactory>(
+ sm.set(
cppu::defaultBootstrap_InitialComponentContext()->getServiceManager(),
UNO_QUERY_THROW);
#endif
+ comphelper::setProcessServiceFactory(sm);
}
void Desktop::DestroyApplicationServiceManager( Reference< XMultiServiceFactory >& xSMgr )
diff --git a/desktop/source/app/sofficemain.cxx b/desktop/source/app/sofficemain.cxx
index e867601df0ee..9463b51c9fb1 100755
--- a/desktop/source/app/sofficemain.cxx
+++ b/desktop/source/app/sofficemain.cxx
@@ -62,11 +62,13 @@ extern "C" int DESKTOP_DLLPUBLIC soffice_main()
const desktop::CommandLineArgs& rCmdLineArgs = aDesktop.GetCommandLineArgs();
if ( rCmdLineArgs.IsHelp() )
{
+ desktop::Desktop::InitApplicationServiceManager();
desktop::displayCmdlineHelp();
return EXIT_SUCCESS;
}
else if ( rCmdLineArgs.IsVersion() )
{
+ desktop::Desktop::InitApplicationServiceManager();
desktop::displayVersion();
return EXIT_SUCCESS;
}