@@ -110,9 +110,11 @@ extern "C" {
110110#define FT_ATOMIC_LOAD_ULLONG_RELAXED (value ) \
111111 _Py_atomic_load_ullong_relaxed(&value)
112112
113+ // This should probably be moved into its own file as a real function.
113114static inline void *
114- FT_ATOMIC_MEMCPY_PTR_RELAXED (void * dest , void * src , ssize_t n )
115+ _Py_atomic_memcpy_ptr_relaxed (void * dest , void * src , Py_ssize_t sn )
115116{
117+ size_t n = (size_t )sn ;
116118 assert (((uintptr_t )dest & (sizeof (void * ) - 1 )) == 0 );
117119 assert (((uintptr_t )src & (sizeof (void * ) - 1 )) == 0 );
118120 assert (n % sizeof (void * ) == 0 );
@@ -127,9 +129,13 @@ FT_ATOMIC_MEMCPY_PTR_RELAXED(void *dest, void *src, ssize_t n)
127129 return dest ;
128130}
129131
132+ #define FT_ATOMIC_MEMCPY_PTR_RELAXED (dest , src , n ) \
133+ _Py_atomic_memcpy_ptr_relaxed(dest, src, (Py_ssize_t)(n))
134+
130135static inline void *
131- FT_ATOMIC_MEMMOVE_PTR_RELAXED (void * dest , void * src , ssize_t n )
136+ _Py_atomic_memmove_ptr_relaxed (void * dest , void * src , Py_ssize_t sn )
132137{
138+ size_t n = (size_t )sn ;
133139 assert (((uintptr_t )dest & (sizeof (void * ) - 1 )) == 0 );
134140 assert (((uintptr_t )src & (sizeof (void * ) - 1 )) == 0 );
135141 assert (n % sizeof (void * ) == 0 );
@@ -151,6 +157,9 @@ FT_ATOMIC_MEMMOVE_PTR_RELAXED(void *dest, void *src, ssize_t n)
151157 return dest ;
152158}
153159
160+ #define FT_ATOMIC_MEMMOVE_PTR_RELAXED (dest , src , n ) \
161+ _Py_atomic_memmove_ptr_relaxed(dest, src, (Py_ssize_t)(n))
162+
154163
155164#else
156165#define FT_ATOMIC_LOAD_PTR (value ) value
0 commit comments