[Python-checkins] cpython: #11983: update comment to describe which fields are used and why.
andrew.kuchling
python-checkins at python.org
Mon Apr 14 20:20:15 CEST 2014
http://hg.python.org/cpython/rev/0e35cef1d984
changeset: 90277:0e35cef1d984
user: Andrew Kuchling <amk at amk.ca>
date: Mon Apr 14 14:19:52 2014 -0400
summary:
#11983: update comment to describe which fields are used and why.
Original patch by Caelyn McAulay; modified after discussion w/ her at
the PyCon 2014 sprints.
files:
Include/code.h | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/Include/code.h b/Include/code.h
--- a/Include/code.h
+++ b/Include/code.h
@@ -21,7 +21,12 @@
PyObject *co_varnames; /* tuple of strings (local variable names) */
PyObject *co_freevars; /* tuple of strings (free variable names) */
PyObject *co_cellvars; /* tuple of strings (cell variable names) */
- /* The rest doesn't count for hash or comparisons */
+ /* The rest aren't used in either hash or comparisons, except for
+ co_name (used in both) and co_firstlineno (used only in
+ comparisons). This is done to preserve the name and line number
+ for tracebacks and debuggers; otherwise, constant de-duplication
+ would collapse identical functions/lambdas defined on different lines.
+ */
unsigned char *co_cell2arg; /* Maps cell vars which are arguments. */
PyObject *co_filename; /* unicode (where it was loaded from) */
PyObject *co_name; /* unicode (name, for reference) */
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list