https://github.com/python/cpython/commit/a34e4db28a98904f6c9976675ed7121ed61edabe
commit: a34e4db28a98904f6c9976675ed7121ed61edabe
branch: main
author: Donghee Na <[email protected]>
committer: corona10 <[email protected]>
date: 2024-01-18T23:25:13Z
summary:

gh-111968: Fix --without-freelists build (gh-114270)

files:
M Objects/sliceobject.c

diff --git a/Objects/sliceobject.c b/Objects/sliceobject.c
index 9ec8ea8e1b307f..440c1da30620c3 100644
--- a/Objects/sliceobject.c
+++ b/Objects/sliceobject.c
@@ -105,16 +105,20 @@ PyObject _Py_EllipsisObject = 
_PyObject_HEAD_INIT(&PyEllipsis_Type);
 
 void _PySlice_ClearCache(_PyFreeListState *state)
 {
+#ifdef WITH_FREELISTS
     PySliceObject *obj = state->slice_state.slice_cache;
     if (obj != NULL) {
         state->slice_state.slice_cache = NULL;
         PyObject_GC_Del(obj);
     }
+#endif
 }
 
 void _PySlice_Fini(_PyFreeListState *state)
 {
+#ifdef WITH_FREELISTS
     _PySlice_ClearCache(state);
+#endif
 }
 
 /* start, stop, and step are python objects with None indicating no
@@ -125,15 +129,17 @@ static PySliceObject *
 _PyBuildSlice_Consume2(PyObject *start, PyObject *stop, PyObject *step)
 {
     assert(start != NULL && stop != NULL && step != NULL);
-
-    _PyFreeListState *state = _PyFreeListState_GET();
     PySliceObject *obj;
+#ifdef WITH_FREELISTS
+    _PyFreeListState *state = _PyFreeListState_GET();
     if (state->slice_state.slice_cache != NULL) {
         obj = state->slice_state.slice_cache;
         state->slice_state.slice_cache = NULL;
         _Py_NewReference((PyObject *)obj);
     }
-    else {
+    else
+#endif
+    {
         obj = PyObject_GC_New(PySliceObject, &PySlice_Type);
         if (obj == NULL) {
             goto error;
@@ -358,15 +364,18 @@ Create a slice object.  This is used for extended slicing 
(e.g. a[0:10:2]).");
 static void
 slice_dealloc(PySliceObject *r)
 {
-    _PyFreeListState *state = _PyFreeListState_GET();
     _PyObject_GC_UNTRACK(r);
     Py_DECREF(r->step);
     Py_DECREF(r->start);
     Py_DECREF(r->stop);
+#ifdef WITH_FREELISTS
+    _PyFreeListState *state = _PyFreeListState_GET();
     if (state->slice_state.slice_cache == NULL) {
         state->slice_state.slice_cache = r;
     }
-    else {
+    else
+#endif
+    {
         PyObject_GC_Del(r);
     }
 }

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to