diff options
author | Kristján Valur Jónsson <kristjan@ccpgames.com> | 2009-09-28 13:12:38 (GMT) |
---|---|---|
committer | Kristján Valur Jónsson <kristjan@ccpgames.com> | 2009-09-28 13:12:38 (GMT) |
commit | 02ca57ce4c728c4a18d31a6a3f2681bcd1aea2da (patch) | |
tree | e8324025b807032f476c398675dc7a162c2440de /Include | |
parent | d12f86ce96d3aeb91e9c7f010e303bbc1b8d14da (diff) | |
download | cpython-02ca57ce4c728c4a18d31a6a3f2681bcd1aea2da.zip cpython-02ca57ce4c728c4a18d31a6a3f2681bcd1aea2da.tar.gz cpython-02ca57ce4c728c4a18d31a6a3f2681bcd1aea2da.tar.bz2 |
http://bugs.python.org/issue6836
The debug memory api now keeps track of which external API (PyMem_* or PyObject_*) was used to allocate each block and treats any API violation as an error. Added separate _PyMem_DebugMalloc functions for the Py_Mem API instead of having it use the _PyObject_DebugMalloc functions.
Diffstat (limited to 'Include')
-rw-r--r-- | Include/objimpl.h | 7 | ||||
-rw-r--r-- | Include/pymem.h | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/Include/objimpl.h b/Include/objimpl.h index 55186b1..4176c6b 100644 --- a/Include/objimpl.h +++ b/Include/objimpl.h @@ -108,6 +108,13 @@ PyAPI_FUNC(void) _PyObject_DebugFree(void *p); PyAPI_FUNC(void) _PyObject_DebugDumpAddress(const void *p); PyAPI_FUNC(void) _PyObject_DebugCheckAddress(const void *p); PyAPI_FUNC(void) _PyObject_DebugMallocStats(void); +PyAPI_FUNC(void *) _PyObject_DebugMallocApi(char api, size_t nbytes); +PyAPI_FUNC(void *) _PyObject_DebugReallocApi(char api, void *p, size_t nbytes); +PyAPI_FUNC(void) _PyObject_DebugFreeApi(char api, void *p); +PyAPI_FUNC(void) _PyObject_DebugCheckAddressApi(char api, const void *p); +PyAPI_FUNC(void *) _PyMem_DebugMalloc(size_t nbytes); +PyAPI_FUNC(void *) _PyMem_DebugRealloc(void *p, size_t nbytes); +PyAPI_FUNC(void) _PyMem_DebugFree(void *p); #define PyObject_MALLOC _PyObject_DebugMalloc #define PyObject_Malloc _PyObject_DebugMalloc #define PyObject_REALLOC _PyObject_DebugRealloc diff --git a/Include/pymem.h b/Include/pymem.h index 542acee..e2dfe0d 100644 --- a/Include/pymem.h +++ b/Include/pymem.h @@ -59,9 +59,9 @@ PyAPI_FUNC(void) PyMem_Free(void *); /* Macros. */ #ifdef PYMALLOC_DEBUG /* Redirect all memory operations to Python's debugging allocator. */ -#define PyMem_MALLOC PyObject_MALLOC -#define PyMem_REALLOC PyObject_REALLOC -#define PyMem_FREE PyObject_FREE +#define PyMem_MALLOC _PyMem_DebugMalloc +#define PyMem_REALLOC _PyMem_DebugRealloc +#define PyMem_FREE _PyMem_DebugFree #else /* ! PYMALLOC_DEBUG */ |