Wrote down the invariants of some common objects whose structure is

exposed in header files.  Fixed a few comments in these headers.

As we might have expected, writing down invariants systematically exposed a
(minor) bug.  In this case, function objects have a writeable func_code
attribute, which could be set to code objects with the wrong number of
free variables.  Calling the resulting function segfaulted the interpreter.
Added a corresponding test.
This commit is contained in:
Armin Rigo 2004-10-28 16:32:00 +00:00
parent 063e1e846d
commit 89a39461bf
12 changed files with 98 additions and 25 deletions

View file

@ -7,6 +7,9 @@
extern "C" {
#endif
/* This is about the type 'xrange', not the built-in function range(), which
returns regular lists. */
/*
A range object represents an integer range. This is an immutable object;
a range cannot change its value after creation.