This is an automated email from the ASF dual-hosted git repository.
mseidel pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
The following commit(s) were added to refs/heads/AOO42X by this push:
new 55bca0e725 Revert "Port main/linguistic component_getFactory() to the
component context API."
55bca0e725 is described below
commit 55bca0e725dc4019c2c66eefa2872bc2046af257
Author: mseidel <[email protected]>
AuthorDate: Sun Jun 8 11:32:46 2025 +0200
Revert "Port main/linguistic component_getFactory() to the component
context API."
This reverts commit ad380fcac82b58c178faaa6975dcf5f2e3303dfa.
---
main/linguistic/source/convdiclist.cxx | 22 ++++-
main/linguistic/source/dlistimp.cxx | 21 ++++-
main/linguistic/source/gciterator.cxx | 50 ++++++++---
main/linguistic/source/gciterator.hxx | 7 +-
main/linguistic/source/lngopt.cxx | 21 ++++-
main/linguistic/source/lngreg.cxx | 152 +++++++++++++++++----------------
main/linguistic/source/lngsvcmgr.cxx | 24 +++++-
7 files changed, 201 insertions(+), 96 deletions(-)
diff --git a/main/linguistic/source/convdiclist.cxx
b/main/linguistic/source/convdiclist.cxx
index 1533c2fb9a..11181f0fa2 100644
--- a/main/linguistic/source/convdiclist.cxx
+++ b/main/linguistic/source/convdiclist.cxx
@@ -682,10 +682,30 @@ uno::Sequence< OUString >
ConvDicList::getSupportedServiceNames_Static()
///////////////////////////////////////////////////////////////////////////
uno::Reference< uno::XInterface > SAL_CALL ConvDicList_CreateInstance(
- const uno::Reference< XComponentContext > & /*rCtx*/ )
+ const uno::Reference< XMultiServiceFactory > & /*rSMgr*/ )
throw(Exception)
{
return StaticConvDicList::get();
}
+void * SAL_CALL ConvDicList_getFactory(
+ const sal_Char * pImplName,
+ XMultiServiceFactory * pServiceManager, void * )
+{
+ void * pRet = 0;
+ if ( !ConvDicList::getImplementationName_Static().compareToAscii(
pImplName ) )
+ {
+ uno::Reference< XSingleServiceFactory > xFactory =
+ cppu::createOneInstanceFactory(
+ pServiceManager,
+ ConvDicList::getImplementationName_Static(),
+ ConvDicList_CreateInstance,
+ ConvDicList::getSupportedServiceNames_Static());
+ // acquire, because we return an interface pointer instead of a
reference
+ xFactory->acquire();
+ pRet = xFactory.get();
+ }
+ return pRet;
+}
+
///////////////////////////////////////////////////////////////////////////
diff --git a/main/linguistic/source/dlistimp.cxx
b/main/linguistic/source/dlistimp.cxx
index a7bed3013b..9d5284df8f 100644
--- a/main/linguistic/source/dlistimp.cxx
+++ b/main/linguistic/source/dlistimp.cxx
@@ -409,7 +409,7 @@ sal_Int32 DicList::GetDicPos(const uno::Reference<
XDictionary > &xDic)
uno::Reference< XInterface > SAL_CALL
- DicList_CreateInstance( const uno::Reference< XComponentContext > &
/*rCtx*/ )
+ DicList_CreateInstance( const uno::Reference< XMultiServiceFactory > &
/*rSMgr*/ )
throw(Exception)
{
uno::Reference< XInterface > xService = (cppu::OWeakObject *) new
DicList;
@@ -792,6 +792,25 @@ uno::Sequence< rtl::OUString >
DicList::getSupportedServiceNames_Static() throw(
return aSNS;
}
+void * SAL_CALL DicList_getFactory( const sal_Char * pImplName,
+ XMultiServiceFactory * pServiceManager, void * )
+{
+ void * pRet = 0;
+ if ( !DicList::getImplementationName_Static().compareToAscii( pImplName
) )
+ {
+ uno::Reference< XSingleServiceFactory > xFactory =
+ cppu::createOneInstanceFactory(
+ pServiceManager,
+ DicList::getImplementationName_Static(),
+ DicList_CreateInstance,
+ DicList::getSupportedServiceNames_Static());
+ // acquire, because we return an interface pointer instead of a
reference
+ xFactory->acquire();
+ pRet = xFactory.get();
+ }
+ return pRet;
+}
+
///////////////////////////////////////////////////////////////////////////
xub_StrLen lcl_GetToken( String &rToken,
diff --git a/main/linguistic/source/gciterator.cxx
b/main/linguistic/source/gciterator.cxx
index 929f6a50a9..c0a889a0bb 100644
--- a/main/linguistic/source/gciterator.cxx
+++ b/main/linguistic/source/gciterator.cxx
@@ -73,6 +73,10 @@ using ::rtl::OUString;
using namespace linguistic;
using namespace ::com::sun::star;
+// forward declarations
+static ::rtl::OUString GrammarCheckingIterator_getImplementationName() throw();
+static uno::Sequence< OUString >
GrammarCheckingIterator_getSupportedServiceNames() throw();
+
//////////////////////////////////////////////////////////////////////
@@ -266,8 +270,8 @@ void stopGrammarChecking ()
}
*/
-GrammarCheckingIterator::GrammarCheckingIterator( const uno::Reference<
uno::XComponentContext > & rxCtx ) :
- m_xContext( rxCtx ),
+GrammarCheckingIterator::GrammarCheckingIterator( const uno::Reference<
lang::XMultiServiceFactory > & rxMgr ) :
+ m_xMSF( rxMgr ),
m_bEnd( sal_False ),
m_aCurCheckedDocId(),
m_bGCServicesChecked( sal_False ),
@@ -950,7 +954,7 @@ throw (uno::RuntimeException)
// release all UNO references
- m_xContext.clear();
+ m_xMSF.clear();
m_xBreakIterator.clear();
// clear containers with UNO references AND have those references
released
@@ -1148,9 +1152,9 @@ void GrammarCheckingIterator::GetMatchingGCSvcs_Impl()
void GrammarCheckingIterator::GetAvailableGCSvcs_Impl()
{
// internal method; will always be called with locked mutex
- if (m_xContext.is())
+ if (m_xMSF.is())
{
- uno::Reference< container::XContentEnumerationAccess > xEnumAccess(
m_xContext.getServiceManager(), uno::UNO_QUERY );
+ uno::Reference< container::XContentEnumerationAccess > xEnumAccess(
m_xMSF, uno::UNO_QUERY );
uno::Reference< container::XEnumeration > xEnum;
if (xEnumAccess.is())
xEnum = xEnumAccess->createContentEnumeration( A2OU(
SN_GRAMMARCHECKER ) );
@@ -1164,7 +1168,7 @@ void GrammarCheckingIterator::GetAvailableGCSvcs_Impl()
uno::Reference< lang::XSingleServiceFactory >
xFactory;
uno::Reference< uno::XComponentContext > xContext;
- uno::Reference< beans::XPropertySet > xProps(
m_xContext.getServiceManager(), uno::UNO_QUERY );
+ uno::Reference< beans::XPropertySet > xProps( m_xMSF,
uno::UNO_QUERY );
xProps->getPropertyValue( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ))) >>= xContext;
if ( xContext.is() &&
@@ -1221,13 +1225,13 @@ throw(uno::RuntimeException)
OUString SAL_CALL GrammarCheckingIterator::getImplementationName( ) throw
(uno::RuntimeException)
{
- return getImplementationName_Static();
+ return GrammarCheckingIterator_getImplementationName();
}
uno::Sequence< OUString > SAL_CALL
GrammarCheckingIterator::getSupportedServiceNames( ) throw
(uno::RuntimeException)
{
- return getSupportedServiceNames_Static();
+ return GrammarCheckingIterator_getSupportedServiceNames();
}
@@ -1283,13 +1287,13 @@ LinguDispatcher::DspType
GrammarCheckingIterator::GetDspType() const
///////////////////////////////////////////////////////////////////////////
-OUString GrammarCheckingIterator::getImplementationName_Static() throw()
+static OUString GrammarCheckingIterator_getImplementationName() throw()
{
return A2OU( "com.sun.star.lingu2.ProofreadingIterator" );
}
-uno::Sequence< OUString >
GrammarCheckingIterator::getSupportedServiceNames_Static() throw()
+static uno::Sequence< OUString >
GrammarCheckingIterator_getSupportedServiceNames() throw()
{
uno::Sequence< OUString > aSNS( 1 );
aSNS.getArray()[0] = A2OU( SN_GRAMMARCHECKINGITERATOR );
@@ -1297,11 +1301,31 @@ uno::Sequence< OUString >
GrammarCheckingIterator::getSupportedServiceNames_Stat
}
-uno::Reference< uno::XInterface > SAL_CALL
GrammarCheckingIterator_createInstance(
- const uno::Reference< uno::XComponentContext > & rxCtx )
+static uno::Reference< uno::XInterface > SAL_CALL
GrammarCheckingIterator_createInstance(
+ const uno::Reference< lang::XMultiServiceFactory > & rxSMgr )
throw(uno::Exception)
{
- return static_cast< ::cppu::OWeakObject * >(new GrammarCheckingIterator(
rxCtx ));
+ return static_cast< ::cppu::OWeakObject * >(new GrammarCheckingIterator(
rxSMgr ));
}
+void * SAL_CALL GrammarCheckingIterator_getFactory(
+ const sal_Char *pImplName,
+ lang::XMultiServiceFactory *pServiceManager,
+ void * /*pRegistryKey*/ )
+{
+ void * pRet = 0;
+ if ( !GrammarCheckingIterator_getImplementationName().compareToAscii(
pImplName ) )
+ {
+ uno::Reference< lang::XSingleServiceFactory > xFactory =
+ cppu::createOneInstanceFactory(
+ pServiceManager,
+ GrammarCheckingIterator_getImplementationName(),
+ GrammarCheckingIterator_createInstance,
+ GrammarCheckingIterator_getSupportedServiceNames());
+ // acquire, because we return an interface pointer instead of a
reference
+ xFactory->acquire();
+ pRet = xFactory.get();
+ }
+ return pRet;
+}
diff --git a/main/linguistic/source/gciterator.hxx
b/main/linguistic/source/gciterator.hxx
index 30ff6b947d..144bf22d67 100644
--- a/main/linguistic/source/gciterator.hxx
+++ b/main/linguistic/source/gciterator.hxx
@@ -88,7 +88,7 @@ class GrammarCheckingIterator:
>,
public LinguDispatcher
{
- com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
m_xContext;
+ com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory
> m_xMSF;
//the queue is keeping track of all senteces to be checked
@@ -163,7 +163,7 @@ public:
void DequeueAndCheck();
- explicit GrammarCheckingIterator( const com::sun::star::uno::Reference<
com::sun::star::uno::XComponentContext > & rxCtx );
+ explicit GrammarCheckingIterator( const com::sun::star::uno::Reference<
com::sun::star::lang::XMultiServiceFactory > & rxMgr );
virtual ~GrammarCheckingIterator();
// XProofreadingIterator
@@ -196,9 +196,6 @@ public:
virtual void SetServiceList( const ::com::sun::star::lang::Locale
&rLocale, const ::com::sun::star::uno::Sequence< rtl::OUString > &rSvcImplNames
);
virtual ::com::sun::star::uno::Sequence< rtl::OUString > GetServiceList(
const ::com::sun::star::lang::Locale &rLocale ) const;
virtual DspType GetDspType() const;
-
- static ::rtl::OUString getImplementationName_Static() throw();
- static com::sun::star::uno::Sequence< ::rtl::OUString >
getSupportedServiceNames_Static() throw();
};
diff --git a/main/linguistic/source/lngopt.cxx
b/main/linguistic/source/lngopt.cxx
index f7281d024f..6cf21e2416 100644
--- a/main/linguistic/source/lngopt.cxx
+++ b/main/linguistic/source/lngopt.cxx
@@ -385,7 +385,7 @@ void LinguProps::launchEvent( const PropertyChangeEvent
&rEvt ) const
}
Reference< XInterface > SAL_CALL LinguProps_CreateInstance(
- const Reference< XComponentContext > & /*rCtx*/ )
+ const Reference< XMultiServiceFactory > & /*rSMgr*/ )
throw(Exception)
{
Reference< XInterface > xService = (cppu::OWeakObject*)new LinguProps;
@@ -661,4 +661,23 @@ uno::Sequence< OUString >
LinguProps::getSupportedServiceNames_Static()
return aSNS;
}
+void * SAL_CALL LinguProps_getFactory( const sal_Char * pImplName,
+ XMultiServiceFactory *pServiceManager, void * )
+{
+ void * pRet = 0;
+ if ( !LinguProps::getImplementationName_Static().compareToAscii(
pImplName ) )
+ {
+ Reference< XSingleServiceFactory > xFactory =
+ cppu::createOneInstanceFactory(
+ pServiceManager,
+ LinguProps::getImplementationName_Static(),
+ LinguProps_CreateInstance,
+ LinguProps::getSupportedServiceNames_Static());
+ // acquire, because we return an interface pointer instead of a
reference
+ xFactory->acquire();
+ pRet = xFactory.get();
+ }
+ return pRet;
+}
+
///////////////////////////////////////////////////////////////////////////
diff --git a/main/linguistic/source/lngreg.cxx
b/main/linguistic/source/lngreg.cxx
index 27079044c5..50f0d87fbf 100644
--- a/main/linguistic/source/lngreg.cxx
+++ b/main/linguistic/source/lngreg.cxx
@@ -26,92 +26,60 @@
#include <cppuhelper/factory.hxx> // helper for factories
-#include <cppuhelper/implementationentry.hxx>
#include <rtl/string.hxx>
-#include "lngsvcmgr.hxx"
-#include "lngopt.hxx"
-#include "dlistimp.hxx"
-#include "convdiclist.hxx"
-#include "gciterator.hxx"
-
#include <com/sun/star/registry/XRegistryKey.hpp>
using namespace com::sun::star::lang;
using namespace com::sun::star::registry;
-using namespace com::sun::star;
-
-extern uno::Reference< uno::XInterface > SAL_CALL LngSvcMgr_CreateInstance(
- const uno::Reference< uno::XComponentContext > & /*rCtx*/ )
- throw(uno::Exception);
-
-extern uno::Reference< uno::XInterface > SAL_CALL LinguProps_CreateInstance(
- const uno::Reference< uno::XComponentContext > & /*rCtx*/ )
- throw(uno::Exception);
-
-extern uno::Reference< uno::XInterface > SAL_CALL DicList_CreateInstance(
- const uno::Reference< uno::XComponentContext > & /*rCtx*/ )
- throw(uno::Exception);
-
-extern uno::Reference< uno::XInterface > SAL_CALL ConvDicList_CreateInstance(
- const uno::Reference< uno::XComponentContext > & /*rCtx*/ )
- throw(uno::Exception);
-
-extern uno::Reference< uno::XInterface > SAL_CALL
GrammarCheckingIterator_createInstance(
- const uno::Reference< uno::XComponentContext > & rxCtx )
- throw(uno::Exception);
+extern void * SAL_CALL LngSvcMgr_getFactory
+(
+ const sal_Char * pImplName,
+ XMultiServiceFactory * pServiceManager,
+ void * /*pRegistryKey*/
+);
+
+extern void * SAL_CALL DicList_getFactory
+(
+ const sal_Char * pImplName,
+ XMultiServiceFactory * pServiceManager,
+ void *
+);
+
+void * SAL_CALL LinguProps_getFactory
+(
+ const sal_Char * pImplName,
+ XMultiServiceFactory * pServiceManager,
+ void *
+);
+
+extern void * SAL_CALL ConvDicList_getFactory
+(
+ const sal_Char * pImplName,
+ XMultiServiceFactory * pServiceManager,
+ void *
+);
+
+extern void * SAL_CALL GrammarCheckingIterator_getFactory
+(
+ const sal_Char * pImplName,
+ XMultiServiceFactory * pServiceManager,
+ void *
+);
+
+//extern void * SAL_CALL GrammarChecker_getFactory
+//(
+// const sal_Char * pImplName,
+// XMultiServiceFactory * pServiceManager,
+// void *
+//);
////////////////////////////////////////
// definition of the two functions that are used to provide the services
//
-struct ::cppu::ImplementationEntry g_component_entries [] =
-{
- {
- LngSvcMgr_CreateInstance,
- LngSvcMgr::getImplementationName_Static,
- LngSvcMgr::getSupportedServiceNames_Static,
- ::cppu::createSingleComponentFactory,
- 0,
- 0
- },
- {
- LinguProps_CreateInstance,
- LinguProps::getImplementationName_Static,
- LinguProps::getSupportedServiceNames_Static,
- ::cppu::createSingleComponentFactory,
- 0,
- 0
- },
- {
- DicList_CreateInstance,
- DicList::getImplementationName_Static,
- DicList::getSupportedServiceNames_Static,
- ::cppu::createSingleComponentFactory,
- 0,
- 0
- },
- {
- ConvDicList_CreateInstance,
- ConvDicList::getImplementationName_Static,
- ConvDicList::getSupportedServiceNames_Static,
- ::cppu::createSingleComponentFactory,
- 0,
- 0
- },
- {
- GrammarCheckingIterator_createInstance,
- GrammarCheckingIterator::getImplementationName_Static,
- GrammarCheckingIterator::getSupportedServiceNames_Static,
- ::cppu::createSingleComponentFactory,
- 0,
- 0
- },
- { 0, 0, 0, 0, 0, 0 }
-};
-
extern "C"
{
@@ -124,7 +92,43 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL
component_getImplementationEnvironment(
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey
)
{
- return ::cppu::component_getFactoryHelper( pImplName, pServiceManager,
pRegistryKey, g_component_entries );
+ void * pRet =
+ LngSvcMgr_getFactory(
+ pImplName,
+ reinterpret_cast< XMultiServiceFactory * >(
pServiceManager ),
+ pRegistryKey );
+
+ if(!pRet)
+ pRet = LinguProps_getFactory(
+ pImplName,
+ reinterpret_cast< XMultiServiceFactory * >(
pServiceManager ),
+ pRegistryKey );
+
+ if(!pRet)
+ pRet = DicList_getFactory(
+ pImplName,
+ reinterpret_cast< XMultiServiceFactory * >(
pServiceManager ),
+ pRegistryKey );
+
+ if(!pRet)
+ pRet = ConvDicList_getFactory(
+ pImplName,
+ reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
+ pRegistryKey );
+
+ if(!pRet)
+ pRet = GrammarCheckingIterator_getFactory(
+ pImplName,
+ reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
+ pRegistryKey );
+/*
+ if(!pRet)
+ pRet = GrammarChecker_getFactory(
+ pImplName,
+ reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
+ pRegistryKey );
+*/
+ return pRet;
}
}
diff --git a/main/linguistic/source/lngsvcmgr.cxx
b/main/linguistic/source/lngsvcmgr.cxx
index e7eb0440f9..be59d438cd 100644
--- a/main/linguistic/source/lngsvcmgr.cxx
+++ b/main/linguistic/source/lngsvcmgr.cxx
@@ -1990,12 +1990,34 @@ uno::Sequence< OUString >
LngSvcMgr::getSupportedServiceNames_Static()
uno::Reference< uno::XInterface > SAL_CALL LngSvcMgr_CreateInstance(
- const uno::Reference< uno::XComponentContext > & /*rCtx*/ )
+ const uno::Reference< lang::XMultiServiceFactory > & /*rSMgr*/ )
throw(uno::Exception)
{
uno::Reference< uno::XInterface > xService = (cppu::OWeakObject*) new
LngSvcMgr;
return xService;
}
+void * SAL_CALL LngSvcMgr_getFactory(
+ const sal_Char * pImplName,
+ lang::XMultiServiceFactory * pServiceManager,
+ void * /*pRegistryKey*/ )
+{
+
+ void * pRet = 0;
+ if ( !LngSvcMgr::getImplementationName_Static().compareToAscii(
pImplName ) )
+ {
+ uno::Reference< lang::XSingleServiceFactory > xFactory =
+ cppu::createOneInstanceFactory(
+ pServiceManager,
+ LngSvcMgr::getImplementationName_Static(),
+ LngSvcMgr_CreateInstance,
+ LngSvcMgr::getSupportedServiceNames_Static());
+ // acquire, because we return an interface pointer instead of a
reference
+ xFactory->acquire();
+ pRet = xFactory.get();
+ }
+ return pRet;
+}
+
///////////////////////////////////////////////////////////////////////////