From 0cbac06fc62d658b4ebcc09928e1357edfe1cf01 Mon Sep 17 00:00:00 2001 From: Xiaowei Lu Date: Mon, 29 Jun 2026 21:04:28 +0800 Subject: [PATCH] gh-151483: Only declare `PyCodeObject._co_unique_id` on Free Threading (#151484) --- Include/cpython/code.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Include/cpython/code.h b/Include/cpython/code.h index 84456a709a6a..1be47e42ed62 100644 --- a/Include/cpython/code.h +++ b/Include/cpython/code.h @@ -34,9 +34,13 @@ typedef struct { char *entries[1]; } _PyCodeArray; +#define _PyCode_DEF_UNIQUE_ID() \ + Py_ssize_t _co_unique_id; /* ID used for per-thread refcounting */ + #define _PyCode_DEF_THREAD_LOCAL_BYTECODE() \ _PyCodeArray *co_tlbc; #else +#define _PyCode_DEF_UNIQUE_ID() #define _PyCode_DEF_THREAD_LOCAL_BYTECODE() #endif @@ -101,7 +105,7 @@ typedef struct { _PyCoCached *_co_cached; /* cached co_* attributes */ \ uintptr_t _co_instrumentation_version; /* current instrumentation version */ \ struct _PyCoMonitoringData *_co_monitoring; /* Monitoring data */ \ - Py_ssize_t _co_unique_id; /* ID used for per-thread refcounting */ \ + _PyCode_DEF_UNIQUE_ID() \ int _co_firsttraceable; /* index of first traceable instruction */ \ /* Scratch space for extra data relating to the code object. \ Type is a void* to keep the format private in codeobject.c to force \ -- 2.47.3