coverity#1019376 Resource leak

Change-Id: Ifa9c5a7b3aa0d219e09fa3081e66d870a508a84d
This commit is contained in:
Caolán McNamara 2014-04-02 10:48:13 +01:00
parent 0978c495da
commit d69b30a84d
2 changed files with 9 additions and 4 deletions

View File

@ -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;

View File

@ -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());