Fixed convertes memory leak.
Reviewer: Hugo Parente Lima <hugo.lima@openbossa.org>,
Luciano Wolf <luciano.wolf@openbossa.org>
This commit is contained in:
parent
35a3178fdc
commit
171c9ed6ef
1 changed files with 5 additions and 4 deletions
|
|
@ -68,9 +68,9 @@ struct QtDictConverter
|
||||||
typename QtDict::const_iterator it = cppobj.begin();
|
typename QtDict::const_iterator it = cppobj.begin();
|
||||||
|
|
||||||
for (; it != cppobj.end(); ++it) {
|
for (; it != cppobj.end(); ++it) {
|
||||||
PyDict_SetItem(result,
|
Shiboken::AutoDecRef keyObj(Shiboken::Converter<typename QtDict::key_type>::toPython(it.key()));
|
||||||
Shiboken::Converter<typename QtDict::key_type>::toPython(it.key()),
|
Shiboken::AutoDecRef valueObj(Shiboken::Converter<typename QtDict::mapped_type>::toPython(it.value()));
|
||||||
Shiboken::Converter<typename QtDict::mapped_type>::toPython(it.value()));
|
PyDict_SetItem(result, keyObj, valueObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -123,9 +123,10 @@ struct QSequenceConverter
|
||||||
if (PyObject_TypeCheck(pyobj, Shiboken::SbkType<T>()))
|
if (PyObject_TypeCheck(pyobj, Shiboken::SbkType<T>()))
|
||||||
return *reinterpret_cast<T*>(Shiboken::getCppPointer(pyobj, Shiboken::SbkType<T>()));
|
return *reinterpret_cast<T*>(Shiboken::getCppPointer(pyobj, Shiboken::SbkType<T>()));
|
||||||
|
|
||||||
|
Shiboken::AutoDecRef fastSequence(PySequence_Fast(pyobj, "Invalid sequence object"));
|
||||||
T result;
|
T result;
|
||||||
for (int i = 0; i < PySequence_Size(pyobj); i++) {
|
for (int i = 0; i < PySequence_Size(pyobj); i++) {
|
||||||
PyObject* pyItem = PySequence_GetItem(pyobj, i);
|
PyObject* pyItem = PySequence_Fast_GET_ITEM(fastSequence, i);
|
||||||
result << Shiboken::Converter<typename T::value_type>::toCpp(pyItem);
|
result << Shiboken::Converter<typename T::value_type>::toCpp(pyItem);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue