Kaydet (Commit) d69b30a8 authored tarafından Caolán McNamara's avatar Caolán McNamara

coverity#1019376 Resource leak

Change-Id: Ifa9c5a7b3aa0d219e09fa3081e66d870a508a84d
üst 0978c495
...@@ -51,6 +51,8 @@ ...@@ -51,6 +51,8 @@
#include <cppuhelper/implbase2.hxx> #include <cppuhelper/implbase2.hxx>
#include <cppuhelper/weakref.hxx> #include <cppuhelper/weakref.hxx>
#include <osl/module.hxx>
// In Python 3, the PyString_* functions have been replaced by PyBytes_* // In Python 3, the PyString_* functions have been replaced by PyBytes_*
// and PyUnicode_* functions. // and PyUnicode_* functions.
#if PY_MAJOR_VERSION >= 3 #if PY_MAJOR_VERSION >= 3
...@@ -276,6 +278,7 @@ struct RuntimeCargo ...@@ -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::script::XInvocationAdapterFactory2 > xAdapterFactory;
com::sun::star::uno::Reference< com::sun::star::beans::XIntrospection > xIntrospection; com::sun::star::uno::Reference< com::sun::star::beans::XIntrospection > xIntrospection;
PyRef dictUnoModule; PyRef dictUnoModule;
osl::Module testModule;
bool valid; bool valid;
ExceptionClassMap exceptionMap; ExceptionClassMap exceptionMap;
ClassSet interfaceSet; ClassSet interfaceSet;
......
...@@ -346,11 +346,13 @@ static PyObject* initPoniesMode( ...@@ -346,11 +346,13 @@ static PyObject* initPoniesMode(
.replaceAll(OString('/'), OString('\\')) .replaceAll(OString('/'), OString('\\'))
#endif #endif
; ;
oslModule const mod( osl_loadModuleAscii(libname.getStr(),
SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL) ); osl::Module &mod = runtime.getImpl()->cargo->testModule;
if (!mod) { abort(); } mod.load(OStringToOUString(libname, osl_getThreadTextEncoding()),
SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL);
if (!mod.is()) { abort(); }
oslGenericFunction const pFunc( oslGenericFunction const pFunc(
osl_getAsciiFunctionSymbol(mod, "test_init")); mod.getFunctionSymbol("test_init"));
if (!pFunc) { abort(); } if (!pFunc) { abort(); }
// guess casting pFunc is undefined behavior but don't see a better way // guess casting pFunc is undefined behavior but don't see a better way
((void (SAL_CALL *)(XMultiServiceFactory*)) pFunc) (xMSF.get()); ((void (SAL_CALL *)(XMultiServiceFactory*)) pFunc) (xMSF.get());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment