[Python-Dev] test_builtin failing on Windows
Tim Peters
tim.one@home.com
Fri, 23 Feb 2001 15:49:17 -0500
The second time we get to here (in com_test, compile.c, and when running
python_d -O blah/blah/test_builtin.py, and test_b2.pyo doesn't exist):
co = (PyObject *) icompile(CHILD(n, 0), c);
if (co == NULL) {
c->c_errors++;
return;
}
symtable_exit_scope(c->c_symtable);
if (co == NULL) {
c->c_errors++;
i = 255;
closure = 0;
} else {
i = com_addconst(c, co);
Py_DECREF(co); ************** HERE *********
closure = com_make_closure(c, (PyCodeObject *)co);
}
the refcount of co is 1 before we do the Py_DECREF. Everything else follows
from that.
In the failing 2nd time thru this code, com_addconst finds the thing
already, so com_addconst doesn't boost the refcount above 1.
The code appears a bit confused regardless (e.g., it checks for co==NULL
twice, but it looks impossible for the second test to succeed).