[ctypes-commit] ctypes/source callproc.c,1.127.2.12,1.127.2.13
Brought to you by:
theller
From: Thomas H. <th...@us...> - 2005-09-02 17:28:16
|
Update of /cvsroot/ctypes/ctypes/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4471 Modified Files: Tag: branch_1_0 callproc.c Log Message: Call _check_retval_ also when restype is not a 'simple' ctypes type. Index: callproc.c =================================================================== RCS file: /cvsroot/ctypes/ctypes/source/callproc.c,v retrieving revision 1.127.2.12 retrieving revision 1.127.2.13 diff -C2 -d -r1.127.2.12 -r1.127.2.13 *** callproc.c 30 Aug 2005 09:33:31 -0000 1.127.2.12 --- callproc.c 2 Sep 2005 17:28:05 -0000 1.127.2.13 *************** *** 703,706 **** --- 703,707 ---- { StgDictObject *dict; + PyObject *retval, *v; if (restype == NULL) *************** *** 716,736 **** return PyObject_CallFunction(restype, "i", *(int *)result); ! if (dict->getfunc) { ! PyObject *retval, *v; retval = dict->getfunc(result, dict->size); ! if (!checker || !retval) ! return retval; ! v = PyObject_CallFunctionObjArgs(checker, retval, NULL); ! if (v == NULL) ! _AddTraceback("GetResult", __FILE__, __LINE__-2); ! Py_DECREF(retval); ! return v; ! } ! /* When __ctypes_check_retval__ is introduced, ! call this on the result we get here. ! And later, get rid of the checker stuff. ! */ ! return CData_FromBaseObj(restype, NULL, 0, result); } --- 717,733 ---- return PyObject_CallFunction(restype, "i", *(int *)result); ! if (dict->getfunc) retval = dict->getfunc(result, dict->size); ! else ! retval = CData_FromBaseObj(restype, NULL, 0, result); ! if (!checker || !retval) ! return retval; ! ! v = PyObject_CallFunctionObjArgs(checker, retval, NULL); ! if (v == NULL) ! _AddTraceback("GetResult", __FILE__, __LINE__-2); ! Py_DECREF(retval); ! return v; } |