diff options
Diffstat (limited to 'pyuno/source/module')
-rw-r--r-- | pyuno/source/module/pyuno_impl.hxx | 3 | ||||
-rw-r--r-- | pyuno/source/module/pyuno_module.cxx | 10 |
2 files changed, 9 insertions, 4 deletions
diff --git a/pyuno/source/module/pyuno_impl.hxx b/pyuno/source/module/pyuno_impl.hxx index 471ac954accd..02600cd691a5 100644 --- a/pyuno/source/module/pyuno_impl.hxx +++ b/pyuno/source/module/pyuno_impl.hxx @@ -51,6 +51,8 @@ #include <cppuhelper/implbase2.hxx> #include <cppuhelper/weakref.hxx> +#include <osl/module.hxx> + // In Python 3, the PyString_* functions have been replaced by PyBytes_* // and PyUnicode_* functions. #if PY_MAJOR_VERSION >= 3 @@ -276,6 +278,7 @@ struct RuntimeCargo com::sun::star::uno::Reference< com::sun::star::script::XInvocationAdapterFactory2 > xAdapterFactory; com::sun::star::uno::Reference< com::sun::star::beans::XIntrospection > xIntrospection; PyRef dictUnoModule; + osl::Module testModule; bool valid; ExceptionClassMap exceptionMap; ClassSet interfaceSet; diff --git a/pyuno/source/module/pyuno_module.cxx b/pyuno/source/module/pyuno_module.cxx index 47b57aa694c0..27986e54b1ac 100644 --- a/pyuno/source/module/pyuno_module.cxx +++ b/pyuno/source/module/pyuno_module.cxx @@ -346,11 +346,13 @@ static PyObject* initPoniesMode( .replaceAll(OString('/'), OString('\\')) #endif ; - oslModule const mod( osl_loadModuleAscii(libname.getStr(), - SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL) ); - if (!mod) { abort(); } + + osl::Module &mod = runtime.getImpl()->cargo->testModule; + mod.load(OStringToOUString(libname, osl_getThreadTextEncoding()), + SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL); + if (!mod.is()) { abort(); } oslGenericFunction const pFunc( - osl_getAsciiFunctionSymbol(mod, "test_init")); + mod.getFunctionSymbol("test_init")); if (!pFunc) { abort(); } // guess casting pFunc is undefined behavior but don't see a better way ((void (SAL_CALL *)(XMultiServiceFactory*)) pFunc) (xMSF.get()); |