summaryrefslogtreecommitdiffstats
path: root/Objects/mimalloc/page.c
diff options
context:
space:
mode:
authorSam Gross <colesbury@gmail.com>2024-02-20 15:36:40 (GMT)
committerGitHub <noreply@github.com>2024-02-20 15:36:40 (GMT)
commitcc82e33af978df793b83cefe4e25e07223a3a09e (patch)
treed3eea26833e8ffb71fe3b19dd45e54d0e9fe33f9 /Objects/mimalloc/page.c
parentc0b0c2f2015fb27db4306109b2b3781eb2057c2b (diff)
downloadcpython-cc82e33af978df793b83cefe4e25e07223a3a09e.zip
cpython-cc82e33af978df793b83cefe4e25e07223a3a09e.tar.gz
cpython-cc82e33af978df793b83cefe4e25e07223a3a09e.tar.bz2
gh-115491: Keep some fields valid across allocations (free-threading) (#115573)
This avoids filling the memory occupied by ob_tid, ob_ref_local, and ob_ref_shared with debug bytes (e.g., 0xDD) in mimalloc in the free-threaded build.
Diffstat (limited to 'Objects/mimalloc/page.c')
-rw-r--r--Objects/mimalloc/page.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/Objects/mimalloc/page.c b/Objects/mimalloc/page.c
index 8f0ce92..63db893 100644
--- a/Objects/mimalloc/page.c
+++ b/Objects/mimalloc/page.c
@@ -661,6 +661,7 @@ static void mi_page_init(mi_heap_t* heap, mi_page_t* page, size_t block_size, mi
// set fields
mi_page_set_heap(page, heap);
page->tag = heap->tag;
+ page->debug_offset = heap->debug_offset;
page->xblock_size = (block_size < MI_HUGE_BLOCK_SIZE ? (uint32_t)block_size : MI_HUGE_BLOCK_SIZE); // initialize before _mi_segment_page_start
size_t page_size;
const void* page_start = _mi_segment_page_start(segment, page, &page_size);