@@ -1629,11 +1629,7 @@ memory_getbuf(PyObject *_self, Py_buffer *view, int flags)
16291629
16301630
16311631 view -> obj = Py_NewRef (self );
1632- #ifdef Py_GIL_DISABLED
1633- _Py_atomic_add_ssize (& self -> exports , 1 );
1634- #else
1635- self -> exports ++ ;
1636- #endif
1632+ FT_ATOMIC_ADD_SSIZE (self -> exports , 1 );
16371633
16381634 return 0 ;
16391635}
@@ -1642,11 +1638,7 @@ static void
16421638memory_releasebuf (PyObject * _self , Py_buffer * view )
16431639{
16441640 PyMemoryViewObject * self = (PyMemoryViewObject * )_self ;
1645- #ifdef Py_GIL_DISABLED
1646- _Py_atomic_add_ssize (& self -> exports , -1 );
1647- #else
1648- self -> exports -- ;
1649- #endif
1641+ FT_ATOMIC_ADD_SSIZE (self -> exports , -1 );
16501642 return ;
16511643 /* PyBuffer_Release() decrements view->obj after this function returns. */
16521644}
@@ -2434,9 +2426,9 @@ memoryview_hex_impl(PyMemoryViewObject *self, PyObject *sep,
24342426 // Prevent 'self' from being freed if computing len(sep) mutates 'self'
24352427 // in _Py_strhex_with_sep().
24362428 // See: https://github.com/python/cpython/issues/143195.
2437- self -> exports ++ ;
2429+ FT_ATOMIC_ADD_SSIZE ( self -> exports , 1 ) ;
24382430 PyObject * ret = _Py_strhex_with_sep (src -> buf , src -> len , sep , bytes_per_sep );
2439- self -> exports -- ;
2431+ FT_ATOMIC_ADD_SSIZE ( self -> exports , -1 ) ;
24402432 return ret ;
24412433 }
24422434
@@ -3363,9 +3355,9 @@ memory_hash(PyObject *_self)
33633355 if (view -> obj != NULL ) {
33643356 // Prevent 'self' from being freed when computing the item's hash.
33653357 // See https://github.com/python/cpython/issues/142664.
3366- self -> exports ++ ;
3358+ FT_ATOMIC_ADD_SSIZE ( self -> exports , 1 ) ;
33673359 Py_hash_t h = PyObject_Hash (view -> obj );
3368- self -> exports -- ;
3360+ FT_ATOMIC_ADD_SSIZE ( self -> exports , -1 ) ;
33693361 if (h == -1 ) {
33703362 /* Keep the original error message */
33713363 return -1 ;
0 commit comments