diff options
author | Andrew Kuchling <amk@amk.ca> | 2014-04-14 14:19:52 -0400 |
---|---|---|
committer | Andrew Kuchling <amk@amk.ca> | 2014-04-14 14:19:52 -0400 |
commit | 765f45228325ffa98d26860aeeea9c14a5d3b499 (patch) | |
tree | b1c556dcddcfc9b1e50bb39ea4cd4b3d300865e5 /Include/code.h | |
parent | 36fb8881f018ea8b7f26e4f16d5bfa8095cf2fc3 (diff) | |
download | cpython-765f45228325ffa98d26860aeeea9c14a5d3b499.tar.gz |
#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.
Diffstat (limited to 'Include/code.h')
-rw-r--r-- | Include/code.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Include/code.h b/Include/code.h index 7c7e5bf8dc..ff2b97efe9 100644 --- a/Include/code.h +++ b/Include/code.h @@ -21,7 +21,12 @@ typedef struct { 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) */ |