https://github.com/python/cpython/commit/8234419c32b9890689e26da936882bc1e9ee161f
commit: 8234419c32b9890689e26da936882bc1e9ee161f
branch: main
author: Jelle Zijlstra <[email protected]>
committer: JelleZijlstra <[email protected]>
date: 2024-08-01T16:28:25-07:00
summary:

gh-122562: Remove ste_free and ste_child_free from symtable (#122563)

files:
M Include/internal/pycore_symtable.h
M Python/symtable.c

diff --git a/Include/internal/pycore_symtable.h 
b/Include/internal/pycore_symtable.h
index d9ed16a3d2321f..b449e8b9dcd91f 100644
--- a/Include/internal/pycore_symtable.h
+++ b/Include/internal/pycore_symtable.h
@@ -106,9 +106,6 @@ typedef struct _symtable_entry {
     const char *ste_scope_info;
 
     int ste_nested;      /* true if block is nested */
-    unsigned ste_free : 1;        /* true if block has free variables */
-    unsigned ste_child_free : 1;  /* true if a child block has free vars,
-                                     including free refs to globals */
     unsigned ste_generator : 1;   /* true if namespace is a generator */
     unsigned ste_coroutine : 1;   /* true if namespace is a coroutine */
     unsigned ste_annotations_used : 1;  /* true if there are any annotations 
in this scope */
diff --git a/Python/symtable.c b/Python/symtable.c
index 88af37198bfba5..89a0d8a2ccec1a 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -115,7 +115,6 @@ ste_new(struct symtable *st, identifier name, _Py_block_ty 
block,
     ste->ste_scope_info = NULL;
 
     ste->ste_nested = 0;
-    ste->ste_free = 0;
     ste->ste_varargs = 0;
     ste->ste_varkeywords = 0;
     ste->ste_annotations_used = 0;
@@ -125,7 +124,6 @@ ste_new(struct symtable *st, identifier name, _Py_block_ty 
block,
         (st->st_cur->ste_nested ||
          _PyST_IsFunctionLike(st->st_cur)))
         ste->ste_nested = 1;
-    ste->ste_child_free = 0;
     ste->ste_generator = 0;
     ste->ste_coroutine = 0;
     ste->ste_comprehension = NoComprehension;
@@ -299,8 +297,6 @@ static void _dump_symtable(PySTEntryObject* ste, PyObject* 
prefix)
         comptype,
         prefix,
         ste->ste_nested ? " nested" : "",
-        ste->ste_free ? " free" : "",
-        ste->ste_child_free ? " child_free" : "",
         ste->ste_generator ? " generator" : "",
         ste->ste_coroutine ? " coroutine" : "",
         ste->ste_varargs ? " varargs" : "",
@@ -692,7 +688,6 @@ analyze_name(PySTEntryObject *ste, PyObject *scopes, 
PyObject *name, long flags,
             return error_at_directive(ste, name);
         }
         SET_SCOPE(scopes, name, FREE);
-        ste->ste_free = 1;
         return PySet_Add(free, name) >= 0;
     }
     if (flags & DEF_BOUND) {
@@ -741,7 +736,6 @@ analyze_name(PySTEntryObject *ste, PyObject *scopes, 
PyObject *name, long flags,
         }
         if (contains) {
             SET_SCOPE(scopes, name, FREE);
-            ste->ste_free = 1;
             return PySet_Add(free, name) >= 0;
         }
     }
@@ -758,8 +752,6 @@ analyze_name(PySTEntryObject *ste, PyObject *scopes, 
PyObject *name, long flags,
             return 1;
         }
     }
-    if (ste->ste_nested)
-        ste->ste_free = 1;
     SET_SCOPE(scopes, name, GLOBAL_IMPLICIT);
     return 1;
 }
@@ -842,7 +834,6 @@ inline_comprehension(PySTEntryObject *ste, PySTEntryObject 
*comp,
             }
         }
     }
-    comp->ste_free = PySet_Size(comp_free) > 0;
     if (remove_dunder_class && PyDict_DelItemString(comp->ste_symbols, 
"__class__") < 0) {
         return 0;
     }
@@ -1202,9 +1193,6 @@ analyze_block(PySTEntryObject *ste, PyObject *bound, 
PyObject *free,
         if (!temp)
             goto error;
         Py_DECREF(temp);
-        /* Check if any children have free variables */
-        if (entry->ste_free || entry->ste_child_free)
-            ste->ste_child_free = 1;
     }
 
     /* Splice children of inlined comprehensions into our children list */

_______________________________________________
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