summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2012-10-12 11:44:23 +0200
committerStephan Bergmann <sbergman@redhat.com>2012-10-23 13:06:14 +0200
commitb30ee83058793ea8fbb020e5ac8f118bd20853d5 (patch)
treec187507f36c6288e5f4ede78a0d5e33876f7b3f1 /sc
parent5e48667f6bdd2f5e05b3f41d080fda06bd3d7c16 (diff)
fdo#46808, use service constructor for beans::Introspection
Change-Id: Ieb49277020d31779979d8eb508391d6f8b97bf94
Diffstat (limited to 'sc')
-rw-r--r--sc/source/core/tool/addincol.cxx548
-rw-r--r--sc/source/ui/vba/vbahelper.cxx6
2 files changed, 270 insertions, 284 deletions
diff --git a/sc/source/core/tool/addincol.cxx b/sc/source/core/tool/addincol.cxx
index 6736d74d4591..4ca1cffeb46f 100644
--- a/sc/source/core/tool/addincol.cxx
+++ b/sc/source/core/tool/addincol.cxx
@@ -38,7 +38,7 @@
#include <com/sun/star/lang/XSingleComponentFactory.hpp>
#include <com/sun/star/reflection/XIdlClass.hpp>
#include <com/sun/star/beans/XIntrospectionAccess.hpp>
-#include <com/sun/star/beans/XIntrospection.hpp>
+#include <com/sun/star/beans/Introspection.hpp>
#include <com/sun/star/beans/MethodConcept.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/table/XCellRange.hpp>
@@ -800,216 +800,209 @@ void ScUnoAddInCollection::ReadFromAddIn( const uno::Reference<uno::XInterface>&
//! pass XIntrospection to ReadFromAddIn
- uno::Reference<lang::XMultiServiceFactory> xManager = comphelper::getProcessServiceFactory();
- if ( xManager.is() )
+ uno::Reference<uno::XComponentContext> xContext = comphelper::getProcessComponentContext();
+
+ uno::Reference<beans::XIntrospection> xIntro = beans::Introspection::create( xContext );
+ uno::Any aObject;
+ aObject <<= xAddIn;
+ uno::Reference<beans::XIntrospectionAccess> xAcc = xIntro->inspect(aObject);
+ if (xAcc.is())
{
- uno::Reference<beans::XIntrospection> xIntro(
- xManager->createInstance(rtl::OUString("com.sun.star.beans.Introspection")),
- uno::UNO_QUERY );
- if ( xIntro.is() )
+ uno::Sequence< uno::Reference<reflection::XIdlMethod> > aMethods =
+ xAcc->getMethods( beans::MethodConcept::ALL );
+ long nNewCount = aMethods.getLength();
+ if ( nNewCount )
{
- uno::Any aObject;
- aObject <<= xAddIn;
- uno::Reference<beans::XIntrospectionAccess> xAcc = xIntro->inspect(aObject);
- if (xAcc.is())
+ long nOld = nFuncCount;
+ nFuncCount = nNewCount+nOld;
+ if ( nOld )
+ {
+ ScUnoAddInFuncData** ppNew = new ScUnoAddInFuncData*[nFuncCount];
+ for (long i=0; i<nOld; i++)
+ ppNew[i] = ppFuncData[i];
+ delete[] ppFuncData;
+ ppFuncData = ppNew;
+ }
+ else
+ ppFuncData = new ScUnoAddInFuncData*[nFuncCount];
+
+ //! TODO: adjust bucket count?
+ if ( !pExactHashMap )
+ pExactHashMap = new ScAddInHashMap;
+ if ( !pNameHashMap )
+ pNameHashMap = new ScAddInHashMap;
+ if ( !pLocalHashMap )
+ pLocalHashMap = new ScAddInHashMap;
+
+ const uno::Reference<reflection::XIdlMethod>* pArray = aMethods.getConstArray();
+ for (long nFuncPos=0; nFuncPos<nNewCount; nFuncPos++)
{
- uno::Sequence< uno::Reference<reflection::XIdlMethod> > aMethods =
- xAcc->getMethods( beans::MethodConcept::ALL );
- long nNewCount = aMethods.getLength();
- if ( nNewCount )
+ ppFuncData[nFuncPos+nOld] = NULL;
+
+ uno::Reference<reflection::XIdlMethod> xFunc = pArray[nFuncPos];
+ if (xFunc.is())
{
- long nOld = nFuncCount;
- nFuncCount = nNewCount+nOld;
- if ( nOld )
+ // leave out internal functions
+ uno::Reference<reflection::XIdlClass> xClass =
+ xFunc->getDeclaringClass();
+ sal_Bool bSkip = sal_True;
+ if ( xClass.is() )
{
- ScUnoAddInFuncData** ppNew = new ScUnoAddInFuncData*[nFuncCount];
- for (long i=0; i<nOld; i++)
- ppNew[i] = ppFuncData[i];
- delete[] ppFuncData;
- ppFuncData = ppNew;
+ //! XIdlClass needs getType() method!
+ rtl::OUString sName = xClass->getName();
+ bSkip = (
+ IsTypeName( sName,
+ getCppuType((uno::Reference<uno::XInterface>*)0) ) ||
+ IsTypeName( sName,
+ getCppuType((uno::Reference<lang::XServiceName>*)0) ) ||
+ IsTypeName( sName,
+ getCppuType((uno::Reference<lang::XServiceInfo>*)0) ) ||
+ IsTypeName( sName,
+ getCppuType((uno::Reference<sheet::XAddIn>*)0) ) );
}
- else
- ppFuncData = new ScUnoAddInFuncData*[nFuncCount];
-
- //! TODO: adjust bucket count?
- if ( !pExactHashMap )
- pExactHashMap = new ScAddInHashMap;
- if ( !pNameHashMap )
- pNameHashMap = new ScAddInHashMap;
- if ( !pLocalHashMap )
- pLocalHashMap = new ScAddInHashMap;
-
- const uno::Reference<reflection::XIdlMethod>* pArray = aMethods.getConstArray();
- for (long nFuncPos=0; nFuncPos<nNewCount; nFuncPos++)
+ if (!bSkip)
{
- ppFuncData[nFuncPos+nOld] = NULL;
+ uno::Reference<reflection::XIdlClass> xReturn =
+ xFunc->getReturnType();
+ if ( !lcl_ValidReturnType( xReturn ) )
+ bSkip = sal_True;
+ }
+ if (!bSkip)
+ {
+ rtl::OUString aFuncU = xFunc->getName();
+
+ // stored function name: (service name).(function)
+ rtl::OUStringBuffer aFuncNameBuffer( aServiceName.getLength()+1+aFuncU.getLength());
+ aFuncNameBuffer.append(aServiceName);
+ aFuncNameBuffer.append('.');
+ aFuncNameBuffer.append(aFuncU);
+ rtl::OUString aFuncName = aFuncNameBuffer.makeStringAndClear();
- uno::Reference<reflection::XIdlMethod> xFunc = pArray[nFuncPos];
- if (xFunc.is())
+ sal_Bool bValid = sal_True;
+ long nVisibleCount = 0;
+ long nCallerPos = SC_CALLERPOS_NONE;
+
+ uno::Sequence<reflection::ParamInfo> aParams =
+ xFunc->getParameterInfos();
+ long nParamCount = aParams.getLength();
+ const reflection::ParamInfo* pParArr = aParams.getConstArray();
+ long nParamPos;
+ for (nParamPos=0; nParamPos<nParamCount; nParamPos++)
{
- // leave out internal functions
- uno::Reference<reflection::XIdlClass> xClass =
- xFunc->getDeclaringClass();
- sal_Bool bSkip = sal_True;
- if ( xClass.is() )
+ if ( pParArr[nParamPos].aMode != reflection::ParamMode_IN )
+ bValid = false;
+ uno::Reference<reflection::XIdlClass> xParClass =
+ pParArr[nParamPos].aType;
+ ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
+ if ( eArgType == SC_ADDINARG_NONE )
+ bValid = false;
+ else if ( eArgType == SC_ADDINARG_CALLER )
+ nCallerPos = nParamPos;
+ else
+ ++nVisibleCount;
+ }
+ if (bValid)
+ {
+ sal_uInt16 nCategory = lcl_GetCategory(
+ xAddIn->getProgrammaticCategoryName( aFuncU ) );
+
+ rtl::OString sHelpId = aHelpIdGenerator.GetHelpId( aFuncU );
+
+ ::rtl::OUString aLocalName;
+ try
+ {
+ aLocalName = xAddIn->
+ getDisplayFunctionName( aFuncU );
+ }
+ catch(uno::Exception&)
+ {
+ aLocalName = "###";
+ }
+
+ ::rtl::OUString aDescription;
+ try
{
- //! XIdlClass needs getType() method!
- rtl::OUString sName = xClass->getName();
- bSkip = (
- IsTypeName( sName,
- getCppuType((uno::Reference<uno::XInterface>*)0) ) ||
- IsTypeName( sName,
- getCppuType((uno::Reference<lang::XServiceName>*)0) ) ||
- IsTypeName( sName,
- getCppuType((uno::Reference<lang::XServiceInfo>*)0) ) ||
- IsTypeName( sName,
- getCppuType((uno::Reference<sheet::XAddIn>*)0) ) );
+ aDescription = xAddIn->
+ getFunctionDescription( aFuncU );
}
- if (!bSkip)
+ catch(uno::Exception&)
{
- uno::Reference<reflection::XIdlClass> xReturn =
- xFunc->getReturnType();
- if ( !lcl_ValidReturnType( xReturn ) )
- bSkip = sal_True;
+ aDescription = "###";
}
- if (!bSkip)
+
+ ScAddInArgDesc* pVisibleArgs = NULL;
+ if ( nVisibleCount > 0 )
{
- rtl::OUString aFuncU = xFunc->getName();
-
- // stored function name: (service name).(function)
- rtl::OUStringBuffer aFuncNameBuffer( aServiceName.getLength()+1+aFuncU.getLength());
- aFuncNameBuffer.append(aServiceName);
- aFuncNameBuffer.append('.');
- aFuncNameBuffer.append(aFuncU);
- rtl::OUString aFuncName = aFuncNameBuffer.makeStringAndClear();
-
- sal_Bool bValid = sal_True;
- long nVisibleCount = 0;
- long nCallerPos = SC_CALLERPOS_NONE;
-
- uno::Sequence<reflection::ParamInfo> aParams =
- xFunc->getParameterInfos();
- long nParamCount = aParams.getLength();
- const reflection::ParamInfo* pParArr = aParams.getConstArray();
- long nParamPos;
+ ScAddInArgDesc aDesc;
+ pVisibleArgs = new ScAddInArgDesc[nVisibleCount];
+ long nDestPos = 0;
for (nParamPos=0; nParamPos<nParamCount; nParamPos++)
{
- if ( pParArr[nParamPos].aMode != reflection::ParamMode_IN )
- bValid = false;
uno::Reference<reflection::XIdlClass> xParClass =
- pParArr[nParamPos].aType;
+ pParArr[nParamPos].aType;
ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
- if ( eArgType == SC_ADDINARG_NONE )
- bValid = false;
- else if ( eArgType == SC_ADDINARG_CALLER )
- nCallerPos = nParamPos;
- else
- ++nVisibleCount;
- }
- if (bValid)
- {
- sal_uInt16 nCategory = lcl_GetCategory(
- xAddIn->getProgrammaticCategoryName( aFuncU ) );
-
- rtl::OString sHelpId = aHelpIdGenerator.GetHelpId( aFuncU );
-
- ::rtl::OUString aLocalName;
- try
- {
- aLocalName = xAddIn->
- getDisplayFunctionName( aFuncU );
- }
- catch(uno::Exception&)
- {
- aLocalName = "###";
- }
-
- ::rtl::OUString aDescription;
- try
- {
- aDescription = xAddIn->
- getFunctionDescription( aFuncU );
- }
- catch(uno::Exception&)
- {
- aDescription = "###";
- }
-
- ScAddInArgDesc* pVisibleArgs = NULL;
- if ( nVisibleCount > 0 )
+ if ( eArgType != SC_ADDINARG_CALLER )
{
- ScAddInArgDesc aDesc;
- pVisibleArgs = new ScAddInArgDesc[nVisibleCount];
- long nDestPos = 0;
- for (nParamPos=0; nParamPos<nParamCount; nParamPos++)
+ rtl::OUString aArgName;
+ try
{
- uno::Reference<reflection::XIdlClass> xParClass =
- pParArr[nParamPos].aType;
- ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
- if ( eArgType != SC_ADDINARG_CALLER )
- {
- rtl::OUString aArgName;
- try
- {
- aArgName = xAddIn->
- getDisplayArgumentName( aFuncU, nParamPos );
- }
- catch(uno::Exception&)
- {
- aArgName = "###";
- }
- rtl::OUString aArgDesc;
- try
- {
- aArgDesc = xAddIn->
- getArgumentDescription( aFuncU, nParamPos );
- }
- catch(uno::Exception&)
- {
- aArgName = "###";
- }
-
- sal_Bool bOptional =
- ( eArgType == SC_ADDINARG_VALUE_OR_ARRAY ||
- eArgType == SC_ADDINARG_VARARGS );
-
- aDesc.eType = eArgType;
- aDesc.aName = aArgName;
- aDesc.aDescription = aArgDesc;
- aDesc.bOptional = bOptional;
- //! initialize aInternalName only from config?
- aDesc.aInternalName = pParArr[nParamPos].aName;
-
- pVisibleArgs[nDestPos++] = aDesc;
- }
+ aArgName = xAddIn->
+ getDisplayArgumentName( aFuncU, nParamPos );
+ }
+ catch(uno::Exception&)
+ {
+ aArgName = "###";
+ }
+ rtl::OUString aArgDesc;
+ try
+ {
+ aArgDesc = xAddIn->
+ getArgumentDescription( aFuncU, nParamPos );
+ }
+ catch(uno::Exception&)
+ {
+ aArgName = "###";
}
- OSL_ENSURE( nDestPos==nVisibleCount, "wrong count" );
- }
- ppFuncData[nFuncPos+nOld] = new ScUnoAddInFuncData(
- aFuncName, aLocalName, aDescription,
- nCategory, sHelpId,
- xFunc, aObject,
- nVisibleCount, pVisibleArgs, nCallerPos );
-
- const ScUnoAddInFuncData* pData =
- ppFuncData[nFuncPos+nOld];
- pExactHashMap->insert(
- ScAddInHashMap::value_type(
- pData->GetOriginalName(),
- pData ) );
- pNameHashMap->insert(
- ScAddInHashMap::value_type(
- pData->GetUpperName(),
- pData ) );
- pLocalHashMap->insert(
- ScAddInHashMap::value_type(
- pData->GetUpperLocal(),
- pData ) );
-
- delete[] pVisibleArgs;
+ sal_Bool bOptional =
+ ( eArgType == SC_ADDINARG_VALUE_OR_ARRAY ||
+ eArgType == SC_ADDINARG_VARARGS );
+
+ aDesc.eType = eArgType;
+ aDesc.aName = aArgName;
+ aDesc.aDescription = aArgDesc;
+ aDesc.bOptional = bOptional;
+ //! initialize aInternalName only from config?
+ aDesc.aInternalName = pParArr[nParamPos].aName;
+
+ pVisibleArgs[nDestPos++] = aDesc;
+ }
}
+ OSL_ENSURE( nDestPos==nVisibleCount, "wrong count" );
}
+
+ ppFuncData[nFuncPos+nOld] = new ScUnoAddInFuncData(
+ aFuncName, aLocalName, aDescription,
+ nCategory, sHelpId,
+ xFunc, aObject,
+ nVisibleCount, pVisibleArgs, nCallerPos );
+
+ const ScUnoAddInFuncData* pData =
+ ppFuncData[nFuncPos+nOld];
+ pExactHashMap->insert(
+ ScAddInHashMap::value_type(
+ pData->GetOriginalName(),
+ pData ) );
+ pNameHashMap->insert(
+ ScAddInHashMap::value_type(
+ pData->GetUpperName(),
+ pData ) );
+ pLocalHashMap->insert(
+ ScAddInHashMap::value_type(
+ pData->GetUpperLocal(),
+ pData ) );
+
+ delete[] pVisibleArgs;
}
}
}
@@ -1066,119 +1059,112 @@ void ScUnoAddInCollection::UpdateFromAddIn( const uno::Reference<uno::XInterface
// only get the function information from Introspection
- uno::Reference<lang::XMultiServiceFactory> xManager = comphelper::getProcessServiceFactory();
- if ( xManager.is() )
+ uno::Reference<uno::XComponentContext> xContext = comphelper::getProcessComponentContext();
+
+ uno::Reference<beans::XIntrospection> xIntro = beans::Introspection::create(xContext);
+ uno::Any aObject;
+ aObject <<= xInterface;
+ uno::Reference<beans::XIntrospectionAccess> xAcc = xIntro->inspect(aObject);
+ if (xAcc.is())
{
- uno::Reference<beans::XIntrospection> xIntro(
- xManager->createInstance(rtl::OUString("com.sun.star.beans.Introspection")),
- uno::UNO_QUERY );
- if ( xIntro.is() )
+ uno::Sequence< uno::Reference<reflection::XIdlMethod> > aMethods =
+ xAcc->getMethods( beans::MethodConcept::ALL );
+ long nMethodCount = aMethods.getLength();
+ const uno::Reference<reflection::XIdlMethod>* pArray = aMethods.getConstArray();
+ for (long nFuncPos=0; nFuncPos<nMethodCount; nFuncPos++)
{
- uno::Any aObject;
- aObject <<= xInterface;
- uno::Reference<beans::XIntrospectionAccess> xAcc = xIntro->inspect(aObject);
- if (xAcc.is())
+ uno::Reference<reflection::XIdlMethod> xFunc = pArray[nFuncPos];
+ if (xFunc.is())
{
- uno::Sequence< uno::Reference<reflection::XIdlMethod> > aMethods =
- xAcc->getMethods( beans::MethodConcept::ALL );
- long nMethodCount = aMethods.getLength();
- const uno::Reference<reflection::XIdlMethod>* pArray = aMethods.getConstArray();
- for (long nFuncPos=0; nFuncPos<nMethodCount; nFuncPos++)
+ rtl::OUString aFuncU = xFunc->getName();
+
+ // stored function name: (service name).(function)
+ rtl::OUStringBuffer aFuncNameBuffer( rServiceName.getLength()+1+aFuncU.getLength());
+ aFuncNameBuffer.append(rServiceName);
+ aFuncNameBuffer.append('.');
+ aFuncNameBuffer.append(aFuncU);
+ rtl::OUString aFuncName = aFuncNameBuffer.makeStringAndClear();
+
+ // internal names are skipped because no FuncData exists
+ ScUnoAddInFuncData* pOldData = const_cast<ScUnoAddInFuncData*>( GetFuncData( aFuncName ) );
+ if ( pOldData )
{
- uno::Reference<reflection::XIdlMethod> xFunc = pArray[nFuncPos];
- if (xFunc.is())
+ // Create new (complete) argument info.
+ // As in ReadFromAddIn, the reflection information is authoritative.
+ // Local names and descriptions from pOldData are looked up using the
+ // internal argument name.
+
+ sal_Bool bValid = sal_True;
+ long nVisibleCount = 0;
+ long nCallerPos = SC_CALLERPOS_NONE;
+
+ uno::Sequence<reflection::ParamInfo> aParams =
+ xFunc->getParameterInfos();
+ long nParamCount = aParams.getLength();
+ const reflection::ParamInfo* pParArr = aParams.getConstArray();
+ long nParamPos;
+ for (nParamPos=0; nParamPos<nParamCount; nParamPos++)
{
- rtl::OUString aFuncU = xFunc->getName();
-
- // stored function name: (service name).(function)
- rtl::OUStringBuffer aFuncNameBuffer( rServiceName.getLength()+1+aFuncU.getLength());
- aFuncNameBuffer.append(rServiceName);
- aFuncNameBuffer.append('.');
- aFuncNameBuffer.append(aFuncU);
- rtl::OUString aFuncName = aFuncNameBuffer.makeStringAndClear();
-
- // internal names are skipped because no FuncData exists
- ScUnoAddInFuncData* pOldData = const_cast<ScUnoAddInFuncData*>( GetFuncData( aFuncName ) );
- if ( pOldData )
+ if ( pParArr[nParamPos].aMode != reflection::ParamMode_IN )
+ bValid = false;
+ uno::Reference<reflection::XIdlClass> xParClass =
+ pParArr[nParamPos].aType;
+ ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
+ if ( eArgType == SC_ADDINARG_NONE )
+ bValid = false;
+ else if ( eArgType == SC_ADDINARG_CALLER )
+ nCallerPos = nParamPos;
+ else
+ ++nVisibleCount;
+ }
+ if (bValid)
+ {
+ ScAddInArgDesc* pVisibleArgs = NULL;
+ if ( nVisibleCount > 0 )
{
- // Create new (complete) argument info.
- // As in ReadFromAddIn, the reflection information is authoritative.
- // Local names and descriptions from pOldData are looked up using the
- // internal argument name.
-
- sal_Bool bValid = sal_True;
- long nVisibleCount = 0;
- long nCallerPos = SC_CALLERPOS_NONE;
-
- uno::Sequence<reflection::ParamInfo> aParams =
- xFunc->getParameterInfos();
- long nParamCount = aParams.getLength();
- const reflection::ParamInfo* pParArr = aParams.getConstArray();
- long nParamPos;
+ ScAddInArgDesc aDesc;
+ pVisibleArgs = new ScAddInArgDesc[nVisibleCount];
+ long nDestPos = 0;
for (nParamPos=0; nParamPos<nParamCount; nParamPos++)
{
- if ( pParArr[nParamPos].aMode != reflection::ParamMode_IN )
- bValid = false;
uno::Reference<reflection::XIdlClass> xParClass =
- pParArr[nParamPos].aType;
+ pParArr[nParamPos].aType;
ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
- if ( eArgType == SC_ADDINARG_NONE )
- bValid = false;
- else if ( eArgType == SC_ADDINARG_CALLER )
- nCallerPos = nParamPos;
- else
- ++nVisibleCount;
- }
- if (bValid)
- {
- ScAddInArgDesc* pVisibleArgs = NULL;
- if ( nVisibleCount > 0 )
+ if ( eArgType != SC_ADDINARG_CALLER )
{
- ScAddInArgDesc aDesc;
- pVisibleArgs = new ScAddInArgDesc[nVisibleCount];
- long nDestPos = 0;
- for (nParamPos=0; nParamPos<nParamCount; nParamPos++)
+ const ScAddInArgDesc* pOldArgDesc =
+ lcl_FindArgDesc( *pOldData, pParArr[nParamPos].aName );
+ if ( pOldArgDesc )
{
- uno::Reference<reflection::XIdlClass> xParClass =
- pParArr[nParamPos].aType;
- ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
- if ( eArgType != SC_ADDINARG_CALLER )
- {
- const ScAddInArgDesc* pOldArgDesc =
- lcl_FindArgDesc( *pOldData, pParArr[nParamPos].aName );
- if ( pOldArgDesc )
- {
- aDesc.aName = pOldArgDesc->aName;
- aDesc.aDescription = pOldArgDesc->aDescription;
- }
- else
- aDesc.aName = aDesc.aDescription = "###";
+ aDesc.aName = pOldArgDesc->aName;
+ aDesc.aDescription = pOldArgDesc->aDescription;
+ }
+ else
+ aDesc.aName = aDesc.aDescription = "###";
- sal_Bool bOptional =
- ( eArgType == SC_ADDINARG_VALUE_OR_ARRAY ||
- eArgType == SC_ADDINARG_VARARGS );
+ sal_Bool bOptional =
+ ( eArgType == SC_ADDINARG_VALUE_OR_ARRAY ||
+ eArgType == SC_ADDINARG_VARARGS );
- aDesc.eType = eArgType;
- aDesc.bOptional = bOptional;
- //! initialize aInternalName only from config?
- aDesc.aInternalName = pParArr[nParamPos].aName;
+ aDesc.eType = eArgType;
+ aDesc.bOptional = bOptional;
+ //! initialize aInternalName only from config?
+ aDesc.aInternalName = pParArr[nParamPos].aName;
- pVisibleArgs[nDestPos++] = aDesc;
- }
- }
- OSL_ENSURE( nDestPos==nVisibleCount, "wrong count" );
+ pVisibleArgs[nDestPos++] = aDesc;
}
+ }
+ OSL_ENSURE( nDestPos==nVisibleCount, "wrong count" );
+ }
- pOldData->SetFunction( xFunc, aObject );
- pOldData->SetArguments( nVisibleCount, pVisibleArgs );
- pOldData->SetCallerPos( nCallerPos );
+ pOldData->SetFunction( xFunc, aObject );
+ pOldData->SetArguments( nVisibleCount, pVisibleArgs );
+ pOldData->SetCallerPos( nCallerPos );
- if ( pFunctionList )
- lcl_UpdateFunctionList( *pFunctionList, *pOldData );
+ if ( pFunctionList )
+ lcl_UpdateFunctionList( *pFunctionList, *pOldData );
- delete[] pVisibleArgs;
- }
- }
+ delete[] pVisibleArgs;
}
}
}
diff --git a/sc/source/ui/vba/vbahelper.cxx b/sc/source/ui/vba/vbahelper.cxx
index ce5e680f1c26..947e6a8491f9 100644
--- a/sc/source/ui/vba/vbahelper.cxx
+++ b/sc/source/ui/vba/vbahelper.cxx
@@ -36,7 +36,7 @@
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/lang/XMultiComponentFactory.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/XIntrospection.hpp>
+#include <com/sun/star/beans/Introspection.hpp>
#include <comphelper/processfactory.hxx>
@@ -82,8 +82,8 @@ getIntrospectionAccess( const uno::Any& aObject ) throw (uno::RuntimeException)
static uno::Reference< beans::XIntrospection > xIntrospection;
if( !xIntrospection.is() )
{
- uno::Reference< lang::XMultiServiceFactory > xFactory( comphelper::getProcessServiceFactory(), uno::UNO_QUERY_THROW );
- xIntrospection.set( xFactory->createInstance( rtl::OUString( "com.sun.star.beans.Introspection" ) ), uno::UNO_QUERY_THROW );
+ uno::Reference< uno::XComponentContext > xContext( comphelper::getProcessComponentContext() );
+ xIntrospection.set( beans::Introspection::create(xContext) );
}
return xIntrospection->inspect( aObject );
}