diff options
-rw-r--r-- | android/experimental/LibreOffice4Android/native-code.cxx | 2 | ||||
-rw-r--r-- | android/experimental/desktop/native-code.cxx | 2 | ||||
-rw-r--r-- | cppuhelper/source/shlib.cxx | 29 | ||||
-rw-r--r-- | ios/experimental/LibreOffice/LibreOffice/lo.mm | 2 | ||||
-rw-r--r-- | ios/shared/ios_sharedlo/cxx/mlo.mm | 2 | ||||
-rw-r--r-- | sax/source/expatwrap/expwrap.component | 2 | ||||
-rw-r--r-- | sax/source/expatwrap/sax_expat.cxx | 78 |
7 files changed, 65 insertions, 52 deletions
diff --git a/android/experimental/LibreOffice4Android/native-code.cxx b/android/experimental/LibreOffice4Android/native-code.cxx index 9e65d8d9bd2a..1c3b5c3112a5 100644 --- a/android/experimental/LibreOffice4Android/native-code.cxx +++ b/android/experimental/LibreOffice4Android/native-code.cxx @@ -21,7 +21,6 @@ extern "C" extern void * embobj_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * emboleobj_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * evtatt_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); - extern void * expwrap_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * filterconfig1_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * frm_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * fsstorage_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); @@ -85,7 +84,6 @@ lo_get_libmap(void) { "libembobj.a", embobj_component_getFactory }, { "libemboleobj.a", emboleobj_component_getFactory }, { "libevtattlo.a", evtatt_component_getFactory }, - { "libexpwrap.uno.a", expwrap_component_getFactory }, { "libfilterconfiglo.a", filterconfig1_component_getFactory }, { "libfrmlo.a", frm_component_getFactory }, { "libfsstoragelo.a", fsstorage_component_getFactory }, diff --git a/android/experimental/desktop/native-code.cxx b/android/experimental/desktop/native-code.cxx index f16eab38637d..15b82f97e149 100644 --- a/android/experimental/desktop/native-code.cxx +++ b/android/experimental/desktop/native-code.cxx @@ -22,7 +22,6 @@ extern "C" extern void * embobj_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * emboleobj_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * evtatt_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); - extern void * expwrap_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * filterconfig1_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * frm_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * fsstorage_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); @@ -90,7 +89,6 @@ lo_get_libmap(void) { "libembobj.a", embobj_component_getFactory }, { "libemboleobj.a", emboleobj_component_getFactory }, { "libevtattlo.a", evtatt_component_getFactory }, - { "libexpwraplo.a", expwrap_component_getFactory }, { "libfilterconfiglo.a", filterconfig1_component_getFactory }, { "libfrmlo.a", frm_component_getFactory }, { "libfsstoragelo.a", fsstorage_component_getFactory }, diff --git a/cppuhelper/source/shlib.cxx b/cppuhelper/source/shlib.cxx index a6a048ff956d..7d30bb437388 100644 --- a/cppuhelper/source/shlib.cxx +++ b/cppuhelper/source/shlib.cxx @@ -245,7 +245,6 @@ extern "C" extern void * configmgr_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * comphelp_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * deployment_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ); - extern void * expwrap_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * filterconfig1_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * fwk_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * introspection_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ); @@ -263,6 +262,10 @@ extern "C" extern void * utl_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * vcl_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * xstor_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ); + + extern void * com_sun_star_comp_extensions_xml_sax_ParserExpat_component_getFactory( const char * , void * , void * ); + extern void * com_sun_star_extensions_xml_sax_Writer_component_getFactory( const char * , void * , void * ); + extern void * com_sun_star_comp_extensions_xml_sax_FastParser_component_getFactory( const char * , void * , void * ); } #endif @@ -310,13 +313,15 @@ css::uno::Reference<css::uno::XInterface> loadSharedLibComponentFactory( aFullPrefix += "_"; } OUString aGetFactoryName = aFullPrefix + COMPONENT_GETFACTORY; + if (rPrefix == "direct") + aGetFactoryName = rImplName.replace('.', '_') + "_" + COMPONENT_GETFACTORY; oslGenericFunction pSym = NULL; #ifdef DISABLE_DYNLOADING // First test library names that aren't app-specific. - static lib_to_component_mapping non_app_specific_map[] = { + static lib_to_component_mapping components_mapping[] = { // Sigh, the name under which the bootstrap component is looked for // varies a lot? Or then I just have been confused by some mixed-up // incremental build. @@ -330,7 +335,6 @@ css::uno::Reference<css::uno::XInterface> loadSharedLibComponentFactory( { "libcomphelper.a", comphelp_component_getFactory }, { "libconfigmgrlo.a", configmgr_component_getFactory }, { "libdeployment.a", deployment_component_getFactory }, - { "libexpwraplo.a", expwrap_component_getFactory }, { "libfilterconfiglo.a", filterconfig1_component_getFactory }, { "libfwklo.a", fwk_component_getFactory }, { "libi18npoollo.a", i18npool_component_getFactory }, @@ -347,9 +351,26 @@ css::uno::Reference<css::uno::XInterface> loadSharedLibComponentFactory( { "libxstor.a", xstor_component_getFactory }, { NULL, NULL } }; + static lib_to_component_mapping direct_components_mapping[] = { + { "com.sun.star.comp.extensions.xml.sax.ParserExpat", com_sun_star_comp_extensions_xml_sax_ParserExpat_component_getFactory }, + { "com.sun.star.extensions.xml.sax.Writer", com_sun_star_extensions_xml_sax_Writer_component_getFactory }, + { "com.sun.star.comp.extensions.xml.sax.FastParser", com_sun_star_comp_extensions_xml_sax_FastParser_component_getFactory }, + { NULL, NULL } + }; + lib_to_component_mapping *non_app_specific_map = components_mapping; + OString sName; + if (rPrefix == "direct") + { + sName = OUStringToOString(rImplName, RTL_TEXTENCODING_ASCII_US); + non_app_specific_map = direct_components_mapping; + } + else + { + sName = OUStringToOString(uri, RTL_TEXTENCODING_ASCII_US); + } for (int i = 0; pSym == NULL && non_app_specific_map[i].lib != NULL; ++i) { - if ( uri.equalsAscii( non_app_specific_map[i].lib ) ) + if ( sName == non_app_specific_map[i].lib ) pSym = (oslGenericFunction) non_app_specific_map[i].component_getFactory_function; } diff --git a/ios/experimental/LibreOffice/LibreOffice/lo.mm b/ios/experimental/LibreOffice/LibreOffice/lo.mm index 610eda9d0e76..54e2b424672e 100644 --- a/ios/experimental/LibreOffice/LibreOffice/lo.mm +++ b/ios/experimental/LibreOffice/LibreOffice/lo.mm @@ -28,7 +28,6 @@ extern "C" { extern void * embobj_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * emboleobj_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * evtatt_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); - extern void * expwrap_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * filterconfig1_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * frm_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); extern void * fsstorage_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey ); @@ -90,7 +89,6 @@ lo_get_libmap(void) { "libembobj.a", embobj_component_getFactory }, { "libemboleobj.a", emboleobj_component_getFactory }, { "libevtattlo.a", evtatt_component_getFactory }, - { "libexpwraplo.a", expwrap_component_getFactory }, { "libfilterconfiglo.a", filterconfig1_component_getFactory }, { "libfrmlo.a", frm_component_getFactory }, { "libfsstoragelo.a", fsstorage_component_getFactory }, diff --git a/ios/shared/ios_sharedlo/cxx/mlo.mm b/ios/shared/ios_sharedlo/cxx/mlo.mm index 50ffd44999ad..5b3ef7e4f4a3 100644 --- a/ios/shared/ios_sharedlo/cxx/mlo.mm +++ b/ios/shared/ios_sharedlo/cxx/mlo.mm @@ -155,7 +155,7 @@ lo_get_libmap(void) //MAP_LIB(ucppkg1), //MAP_LIB_LO(vbaswobj), //MAP_LIB_LO(wpftwriter), //MAP_LIB_LO(wpftdraw), //MAP_LIB_LO(svxcore), //MAP_LIB_LO(protocolhandler), //MAP_LIB_LO_1(filterconfig), //MAP_LIB_LO(canvasfactory), //MAP_LIB_LO(mtfrenderer), - MAP_LIB_LO(expwrap), MAP_LIB_LO(writerfilter), + MAP_LIB_LO(writerfilter), MAP_LIB(embobj), MAP_LIB(emboleobj), MAP_LIB_LO(sot), // ADDED for search diff --git a/sax/source/expatwrap/expwrap.component b/sax/source/expatwrap/expwrap.component index c2a6bf0f4e56..9365a6d7d4da 100644 --- a/sax/source/expatwrap/expwrap.component +++ b/sax/source/expatwrap/expwrap.component @@ -18,7 +18,7 @@ --> <component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@" - prefix="expwrap" xmlns="http://openoffice.org/2010/uno-components"> + prefix="direct" xmlns="http://openoffice.org/2010/uno-components"> <implementation name="com.sun.star.comp.extensions.xml.sax.ParserExpat"> <service name="com.sun.star.xml.sax.Parser"/> </implementation> diff --git a/sax/source/expatwrap/sax_expat.cxx b/sax/source/expatwrap/sax_expat.cxx index 8e066e85ee46..214d2625dbc5 100644 --- a/sax/source/expatwrap/sax_expat.cxx +++ b/sax/source/expatwrap/sax_expat.cxx @@ -51,8 +51,6 @@ using namespace ::com::sun::star::io; #include "xml2utf.hxx" #include <sax/fastparser.hxx> -#define PARSER_IMPLEMENTATION_NAME "com.sun.star.comp.extensions.xml.sax.FastParser" - namespace sax_expatwrap { // Useful macros for correct String conversion depending on the choosen expat-mode @@ -1061,54 +1059,54 @@ void SaxExpatParser_Impl::callbackEndCDATA( void *pvThis ) } } + +static void * getSingleFactory( + void *pServiceManager, + const OUString& sImplementation, + ComponentInstantiation pCreateFunction, + const Sequence< OUString > & rServiceNames) +{ + Reference< XSingleServiceFactory > xFactory; + Reference< XMultiServiceFactory > xSMgr = + reinterpret_cast< XMultiServiceFactory * >( pServiceManager ); + xFactory = createSingleFactory( xSMgr, + sImplementation, pCreateFunction, rServiceNames ); + xFactory->acquire(); + return xFactory.get(); +} + using namespace sax_expatwrap; extern "C" { -SAL_DLLPUBLIC_EXPORT void * SAL_CALL expwrap_component_getFactory( - const sal_Char * pImplName, void * pServiceManager, - SAL_UNUSED_PARAMETER void * /*pRegistryKey*/ ) +SAL_DLLPUBLIC_EXPORT void * SAL_CALL com_sun_star_comp_extensions_xml_sax_ParserExpat_component_getFactory( + const char * , void *pServiceManager, void * ) { - void * pRet = 0; - - if (pServiceManager ) - { - Reference< XSingleServiceFactory > xRet; - Reference< XMultiServiceFactory > xSMgr = - reinterpret_cast< XMultiServiceFactory * > ( pServiceManager ); - - OUString aImplementationName = OUString::createFromAscii( pImplName ); - - if ( aImplementationName == IMPLEMENTATION_NAME ) - { - xRet = createSingleFactory( xSMgr, aImplementationName, - SaxExpatParser_CreateInstance, - SaxExpatParser::getSupportedServiceNames_Static() ); - } - else if ( aImplementationName == SaxWriter_getImplementationName() ) - { - xRet = createSingleFactory( xSMgr, aImplementationName, - SaxWriter_CreateInstance, - SaxWriter_getSupportedServiceNames() ); - } - else if ( aImplementationName == PARSER_IMPLEMENTATION_NAME) - { - xRet = createSingleFactory( xSMgr, aImplementationName, - FastSaxParser_CreateInstance, - sax_fastparser::FastSaxParser::getSupportedServiceNames_Static() ); - } + return getSingleFactory( pServiceManager, + "com.sun.star.comp.extensions.xml.sax.ParserExpat", + SaxExpatParser_CreateInstance, + SaxExpatParser::getSupportedServiceNames_Static() ); +} - if (xRet.is()) - { - xRet->acquire(); - pRet = xRet.get(); - } - } - return pRet; +SAL_DLLPUBLIC_EXPORT void * SAL_CALL com_sun_star_extensions_xml_sax_Writer_component_getFactory( + const char * , void *pServiceManager, void * ) +{ + return getSingleFactory( pServiceManager, + "com.sun.star.extensions.xml.sax.Writer", + SaxWriter_CreateInstance, + SaxWriter_getSupportedServiceNames() ); } +SAL_DLLPUBLIC_EXPORT void * SAL_CALL com_sun_star_comp_extensions_xml_sax_FastParser_component_getFactory( + const char * , void *pServiceManager, void * ) +{ + return getSingleFactory( pServiceManager, + "com.sun.star.comp.extensions.xml.sax.FastParser", + FastSaxParser_CreateInstance, + sax_fastparser::FastSaxParser::getSupportedServiceNames_Static() ); +} } |