mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
bpo-40609: _tracemalloc allocates traces (GH-20064)
Rewrite _tracemalloc to store "trace_t*" rather than directly "trace_t" in traces hash tables. Traces are now allocated on the heap memory, outside the hash table. Add tracemalloc_copy_traces() and tracemalloc_copy_domains() helper functions. Remove _Py_hashtable_copy() function since there is no API to copy a key or a value. Remove also _Py_hashtable_delete() function which was commented.
This commit is contained in:
parent
2d0a3d682f
commit
d95bd4214c
3 changed files with 117 additions and 102 deletions
|
@ -45,13 +45,6 @@ typedef struct {
|
|||
sizeof(DATA)); \
|
||||
} while (0)
|
||||
|
||||
#define _Py_HASHTABLE_ENTRY_WRITE_DATA(TABLE, ENTRY, DATA) \
|
||||
do { \
|
||||
assert(sizeof(DATA) == (TABLE)->data_size); \
|
||||
memcpy((void *)_Py_HASHTABLE_ENTRY_PDATA(ENTRY), \
|
||||
&(DATA), sizeof(DATA)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* _Py_hashtable: prototypes */
|
||||
|
||||
|
@ -118,9 +111,6 @@ PyAPI_FUNC(_Py_hashtable_t *) _Py_hashtable_new_full(
|
|||
|
||||
PyAPI_FUNC(void) _Py_hashtable_destroy(_Py_hashtable_t *ht);
|
||||
|
||||
/* Return a copy of the hash table */
|
||||
PyAPI_FUNC(_Py_hashtable_t *) _Py_hashtable_copy(_Py_hashtable_t *src);
|
||||
|
||||
PyAPI_FUNC(void) _Py_hashtable_clear(_Py_hashtable_t *ht);
|
||||
|
||||
typedef int (*_Py_hashtable_foreach_func) (_Py_hashtable_t *ht,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue