@@ -1635,6 +1635,13 @@ get_async_gen_freelist(void)
1635
1635
struct _Py_object_freelists * freelists = _Py_object_freelists_GET ();
1636
1636
return & freelists -> async_gens ;
1637
1637
}
1638
+
1639
+ static struct _Py_async_gen_asend_freelist *
1640
+ get_async_gen_asend_freelist (void )
1641
+ {
1642
+ struct _Py_object_freelists * freelists = _Py_object_freelists_GET ();
1643
+ return & freelists -> async_gen_asends ;
1644
+ }
1638
1645
#endif
1639
1646
1640
1647
@@ -1659,25 +1666,27 @@ void
1659
1666
_PyAsyncGen_ClearFreeLists (struct _Py_object_freelists * freelist_state , int is_finalization )
1660
1667
{
1661
1668
#ifdef WITH_FREELISTS
1662
- struct _Py_async_gen_freelist * state = & freelist_state -> async_gens ;
1669
+ struct _Py_async_gen_freelist * freelist = & freelist_state -> async_gens ;
1663
1670
1664
- while (state -> value_numfree > 0 ) {
1671
+ while (freelist -> numfree > 0 ) {
1665
1672
_PyAsyncGenWrappedValue * o ;
1666
- o = state -> value_freelist [-- state -> value_numfree ];
1673
+ o = freelist -> items [-- freelist -> numfree ];
1667
1674
assert (_PyAsyncGenWrappedValue_CheckExact (o ));
1668
1675
PyObject_GC_Del (o );
1669
1676
}
1670
1677
1671
- while (state -> asend_numfree > 0 ) {
1678
+ struct _Py_async_gen_asend_freelist * asend_freelist = & freelist_state -> async_gen_asends ;
1679
+
1680
+ while (asend_freelist -> numfree > 0 ) {
1672
1681
PyAsyncGenASend * o ;
1673
- o = state -> asend_freelist [-- state -> asend_numfree ];
1682
+ o = asend_freelist -> items [-- asend_freelist -> numfree ];
1674
1683
assert (Py_IS_TYPE (o , & _PyAsyncGenASend_Type ));
1675
1684
PyObject_GC_Del (o );
1676
1685
}
1677
1686
1678
1687
if (is_finalization ) {
1679
- state -> value_numfree = -1 ;
1680
- state -> asend_numfree = -1 ;
1688
+ freelist -> numfree = -1 ;
1689
+ asend_freelist -> numfree = -1 ;
1681
1690
}
1682
1691
#endif
1683
1692
}
@@ -1726,11 +1735,11 @@ async_gen_asend_dealloc(PyAsyncGenASend *o)
1726
1735
Py_CLEAR (o -> ags_gen );
1727
1736
Py_CLEAR (o -> ags_sendval );
1728
1737
#ifdef WITH_FREELISTS
1729
- struct _Py_async_gen_freelist * async_gen_freelist = get_async_gen_freelist ();
1730
- if (async_gen_freelist -> asend_numfree >= 0 && async_gen_freelist -> asend_numfree < _PyAsyncGen_MAXFREELIST ) {
1738
+ struct _Py_async_gen_asend_freelist * freelist = get_async_gen_asend_freelist ();
1739
+ if (freelist -> numfree >= 0 && freelist -> numfree < _PyAsyncGen_MAXFREELIST ) {
1731
1740
assert (PyAsyncGenASend_CheckExact (o ));
1732
1741
_PyGC_CLEAR_FINALIZED ((PyObject * )o );
1733
- async_gen_freelist -> asend_freelist [ async_gen_freelist -> asend_numfree ++ ] = o ;
1742
+ freelist -> items [ freelist -> numfree ++ ] = o ;
1734
1743
}
1735
1744
else
1736
1745
#endif
@@ -1896,10 +1905,10 @@ async_gen_asend_new(PyAsyncGenObject *gen, PyObject *sendval)
1896
1905
{
1897
1906
PyAsyncGenASend * o ;
1898
1907
#ifdef WITH_FREELISTS
1899
- struct _Py_async_gen_freelist * async_gen_freelist = get_async_gen_freelist ();
1900
- if (async_gen_freelist -> asend_numfree > 0 ) {
1901
- async_gen_freelist -> asend_numfree -- ;
1902
- o = async_gen_freelist -> asend_freelist [ async_gen_freelist -> asend_numfree ];
1908
+ struct _Py_async_gen_asend_freelist * freelist = get_async_gen_asend_freelist ();
1909
+ if (freelist -> numfree > 0 ) {
1910
+ freelist -> numfree -- ;
1911
+ o = freelist -> items [ freelist -> numfree ];
1903
1912
_Py_NewReference ((PyObject * )o );
1904
1913
}
1905
1914
else
@@ -1931,10 +1940,10 @@ async_gen_wrapped_val_dealloc(_PyAsyncGenWrappedValue *o)
1931
1940
_PyObject_GC_UNTRACK ((PyObject * )o );
1932
1941
Py_CLEAR (o -> agw_val );
1933
1942
#ifdef WITH_FREELISTS
1934
- struct _Py_async_gen_freelist * async_gen_freelist = get_async_gen_freelist ();
1935
- if (async_gen_freelist -> value_numfree >= 0 && async_gen_freelist -> value_numfree < _PyAsyncGen_MAXFREELIST ) {
1943
+ struct _Py_async_gen_freelist * freelist = get_async_gen_freelist ();
1944
+ if (freelist -> items >= 0 && freelist -> numfree < _PyAsyncGen_MAXFREELIST ) {
1936
1945
assert (_PyAsyncGenWrappedValue_CheckExact (o ));
1937
- async_gen_freelist -> value_freelist [ async_gen_freelist -> value_numfree ++ ] = o ;
1946
+ freelist -> items [ freelist -> numfree ++ ] = o ;
1938
1947
OBJECT_STAT_INC (to_freelist );
1939
1948
}
1940
1949
else
@@ -2004,10 +2013,10 @@ _PyAsyncGenValueWrapperNew(PyThreadState *tstate, PyObject *val)
2004
2013
assert (val );
2005
2014
2006
2015
#ifdef WITH_FREELISTS
2007
- struct _Py_async_gen_freelist * async_gen_freelist = get_async_gen_freelist ();
2008
- if (async_gen_freelist -> value_numfree > 0 ) {
2009
- async_gen_freelist -> value_numfree -- ;
2010
- o = async_gen_freelist -> value_freelist [ async_gen_freelist -> value_numfree ];
2016
+ struct _Py_async_gen_freelist * freelist = get_async_gen_freelist ();
2017
+ if (freelist -> numfree > 0 ) {
2018
+ freelist -> numfree -- ;
2019
+ o = freelist -> items [ freelist -> numfree ];
2011
2020
OBJECT_STAT_INC (from_freelist );
2012
2021
assert (_PyAsyncGenWrappedValue_CheckExact (o ));
2013
2022
_Py_NewReference ((PyObject * )o );
0 commit comments