[pywin32-checkins] pywin32/com/win32comext/ifilter/src PyIFilter.cpp,1.4,1.5
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: Mark H. <mha...@us...> - 2005-02-28 01:08:31
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/ifilter/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv445 Modified Files: PyIFilter.cpp Log Message: Plug some IFilter memory and object leaks. Index: PyIFilter.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/com/win32comext/ifilter/src/PyIFilter.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PyIFilter.cpp 28 Feb 2005 00:09:31 -0000 1.4 --- PyIFilter.cpp 28 Feb 2005 01:08:18 -0000 1.5 *************** *** 85,93 **** } ! PyObject * obAttr = Py_BuildValue("OO", PyWinObject_FromIID(stat.attribute.guidPropSet), obProp); ! return Py_BuildValue("iiiiOiii", stat.idChunk, stat.breakType, stat.flags, --- 85,93 ---- } ! PyObject * obAttr = Py_BuildValue("NN", PyWinObject_FromIID(stat.attribute.guidPropSet), obProp); ! return Py_BuildValue("iiiiNiii", stat.idChunk, stat.breakType, stat.flags, *************** *** 112,117 **** HRESULT hr; ! PY_INTERFACE_PRECALL; ! if (nBufSize <= 0) nBufSize = 8192; // 8k default --- 112,116 ---- HRESULT hr; ! if (nBufSize = 0) nBufSize = 8192; // 8k default *************** *** 122,137 **** } hr = pIF->GetText( &nBufSize, wBuffer ); PY_INTERFACE_POSTCALL; ! PyObject *obRet = PyWinObject_FromWCHAR(wBuffer, nBufSize); ! ! PyWinObject_FreeWCHAR(wBuffer); ! ! if ( FAILED(hr) ) return PyCom_BuildPyException(hr, pIF, IID_IFilter ); ! ! return obRet; } --- 121,136 ---- } + PY_INTERFACE_PRECALL; hr = pIF->GetText( &nBufSize, wBuffer ); PY_INTERFACE_POSTCALL; ! if ( FAILED(hr) ) { ! PyMem_Free(wBuffer); return PyCom_BuildPyException(hr, pIF, IID_IFilter ); ! } + PyObject *obRet = PyWinObject_FromWCHAR(wBuffer, nBufSize); + PyMem_Free(wBuffer); + return obRet; } |