Access safe data members directly
Change-Id: I2305c17d03c4b6ba3f77c7c5952aadda627118ac
This commit is contained in:
@@ -24,7 +24,6 @@
|
|||||||
#include <macros/xinterface.hxx>
|
#include <macros/xinterface.hxx>
|
||||||
#include <macros/xtypeprovider.hxx>
|
#include <macros/xtypeprovider.hxx>
|
||||||
#include <macros/xserviceinfo.hxx>
|
#include <macros/xserviceinfo.hxx>
|
||||||
#include <threadhelp/threadhelpbase.hxx>
|
|
||||||
#include <general.h>
|
#include <general.h>
|
||||||
#include <stdtypes.h>
|
#include <stdtypes.h>
|
||||||
|
|
||||||
@@ -47,18 +46,12 @@ namespace framework{
|
|||||||
It forwards all URL's to the underlying operating system.
|
It forwards all URL's to the underlying operating system.
|
||||||
So it would e.g. be possible to open HTML files outside the office within a web browser.
|
So it would e.g. be possible to open HTML files outside the office within a web browser.
|
||||||
|
|
||||||
@base ThreadHelpBase
|
|
||||||
exports a lock member to guarantee right initialize value of it
|
|
||||||
@base OWeakObject
|
@base OWeakObject
|
||||||
provides XWeak and ref count mechanism
|
provides XWeak and ref count mechanism
|
||||||
|
|
||||||
@devstatus ready to use
|
@devstatus ready to use
|
||||||
*/
|
*/
|
||||||
class SystemExec : // baseclasses
|
class SystemExec : public ::cppu::WeakImplHelper3<
|
||||||
// Order is necessary for right initialization!
|
|
||||||
private ThreadHelpBase ,
|
|
||||||
// interfaces
|
|
||||||
public ::cppu::WeakImplHelper3<
|
|
||||||
css::lang::XServiceInfo ,
|
css::lang::XServiceInfo ,
|
||||||
css::frame::XDispatchProvider ,
|
css::frame::XDispatchProvider ,
|
||||||
css::frame::XNotifyingDispatch > // => XDispatch
|
css::frame::XNotifyingDispatch > // => XDispatch
|
||||||
|
@@ -18,7 +18,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <dispatch/systemexec.hxx>
|
#include <dispatch/systemexec.hxx>
|
||||||
#include <threadhelp/guard.hxx>
|
|
||||||
#include <general.h>
|
#include <general.h>
|
||||||
#include <services.h>
|
#include <services.h>
|
||||||
|
|
||||||
@@ -57,10 +56,7 @@ DEFINE_INIT_SERVICE(SystemExec,
|
|||||||
|
|
||||||
|
|
||||||
SystemExec::SystemExec( const css::uno::Reference< css::uno::XComponentContext >& rxContext )
|
SystemExec::SystemExec( const css::uno::Reference< css::uno::XComponentContext >& rxContext )
|
||||||
// Init baseclasses first
|
: m_xContext ( rxContext )
|
||||||
: ThreadHelpBase( &Application::GetSolarMutex() )
|
|
||||||
// Init member
|
|
||||||
, m_xContext ( rxContext )
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,7 +64,6 @@ SystemExec::SystemExec( const css::uno::Reference< css::uno::XComponentContext >
|
|||||||
|
|
||||||
SystemExec::~SystemExec()
|
SystemExec::~SystemExec()
|
||||||
{
|
{
|
||||||
m_xContext = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -122,21 +117,15 @@ void SAL_CALL SystemExec::dispatchWithNotification( const css::util::URL&
|
|||||||
}
|
}
|
||||||
OUString sSystemURLWithVariables = aURL.Complete.copy(PROTOCOL_LENGTH, c);
|
OUString sSystemURLWithVariables = aURL.Complete.copy(PROTOCOL_LENGTH, c);
|
||||||
|
|
||||||
// SAFE ->
|
|
||||||
Guard aReadLock(m_aLock);
|
|
||||||
css::uno::Reference< css::uno::XComponentContext > xContext = m_xContext;
|
|
||||||
aReadLock.unlock();
|
|
||||||
// <- SAFE
|
|
||||||
|
|
||||||
// TODO check security settings ...
|
// TODO check security settings ...
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
css::uno::Reference< css::util::XStringSubstitution > xPathSubst( css::util::PathSubstitution::create(xContext) );
|
css::uno::Reference< css::util::XStringSubstitution > xPathSubst( css::util::PathSubstitution::create(m_xContext) );
|
||||||
|
|
||||||
OUString sSystemURL = xPathSubst->substituteVariables(sSystemURLWithVariables, sal_True); // sal_True force an exception if unknown variables exists !
|
OUString sSystemURL = xPathSubst->substituteVariables(sSystemURLWithVariables, sal_True); // sal_True force an exception if unknown variables exists !
|
||||||
|
|
||||||
css::uno::Reference< css::system::XSystemShellExecute > xShell = css::system::SystemShellExecute::create( xContext );
|
css::uno::Reference< css::system::XSystemShellExecute > xShell = css::system::SystemShellExecute::create( m_xContext );
|
||||||
|
|
||||||
xShell->execute(sSystemURL, OUString(), css::system::SystemShellExecuteFlags::URIS_ONLY);
|
xShell->execute(sSystemURL, OUString(), css::system::SystemShellExecuteFlags::URIS_ONLY);
|
||||||
impl_notifyResultListener(xListener, css::frame::DispatchResultState::SUCCESS);
|
impl_notifyResultListener(xListener, css::frame::DispatchResultState::SUCCESS);
|
||||||
|
Reference in New Issue
Block a user