summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2008-08-29 18:37:05 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2008-08-29 18:37:05 (GMT)
commitf7199578be41182fcbcd0350521f9545210e0ddd (patch)
treea0266cbfeb6d6f2d841a2c742cbf007c108860e2 /Include
parentdb26f7c13748db526e52501d3ba2856a6e30c7a5 (diff)
downloadcpython-f7199578be41182fcbcd0350521f9545210e0ddd.zip
cpython-f7199578be41182fcbcd0350521f9545210e0ddd.tar.gz
cpython-f7199578be41182fcbcd0350521f9545210e0ddd.tar.bz2
#3668: When PyArg_ParseTuple correctly parses a s* format, but raises an
exception afterwards (for a subsequent parameter), the user code will not call PyBuffer_Release() and memory will leak. Reviewed by Amaury Forgeot d'Arc.
Diffstat (limited to 'Include')
-rw-r--r--Include/cobject.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/Include/cobject.h b/Include/cobject.h
index 499dfad..4e24d7d 100644
--- a/Include/cobject.h
+++ b/Include/cobject.h
@@ -48,6 +48,15 @@ PyAPI_FUNC(void *) PyCObject_Import(char *module_name, char *cobject_name);
/* Modify a C object. Fails (==0) if object has a destructor. */
PyAPI_FUNC(int) PyCObject_SetVoidPtr(PyObject *self, void *cobj);
+
+typedef struct {
+ PyObject_HEAD
+ void *cobject;
+ void *desc;
+ void (*destructor)(void *);
+} PyCObject;
+
+
#ifdef __cplusplus
}
#endif