#ifdef Py_GIL_DISABLED
+static inline _PyCodeArray *
+_PyCode_GetTLBCArray(PyCodeObject *co)
+{
+ return _Py_STATIC_CAST(_PyCodeArray *,
+ _Py_atomic_load_ptr_acquire(&co->co_tlbc));
+}
+
// Return a pointer to the thread-local bytecode for the current thread, if it
// exists.
static inline _Py_CODEUNIT *
_PyCode_GetTLBCFast(PyThreadState *tstate, PyCodeObject *co)
{
- _PyCodeArray *code = _Py_atomic_load_ptr_acquire(&co->co_tlbc);
+ _PyCodeArray *code = _PyCode_GetTLBCArray(co);
int32_t idx = ((_PyThreadStateImpl*) tstate)->tlbc_index;
if (idx < code->size && code->entries[idx] != NULL) {
return (_Py_CODEUNIT *) code->entries[idx];
{
#ifdef Py_GIL_DISABLED
PyCodeObject *co = _PyFrame_GetCode(f);
- _PyCodeArray *tlbc = _Py_atomic_load_ptr_acquire(&co->co_tlbc);
+ _PyCodeArray *tlbc = _PyCode_GetTLBCArray(co);
assert(f->tlbc_index >= 0 && f->tlbc_index < tlbc->size);
return (_Py_CODEUNIT *)tlbc->entries[f->tlbc_index];
#else