[Gabriel Genellina]
> This time, the ((tuple) and None) is like saying "discard the tuple and  
> return None instead", and that fires the usual StopIteration.

It looks like the offending code is in the gen_send_ex() function in
Objects/genobject.c:

        if (result == Py_None && f->f_stacktop == NULL) {
                Py_DECREF(result);
                result = NULL;
                /* Set exception if not called by gen_iternext() */
                if (arg)
                        PyErr_SetNone(PyExc_StopIteration);
        }

The conditional should probably be:

        if (result 1= NULL && f->f_stacktop == NULL)

Please open a bug report on SF and assign to me.


Raymond Hettinger

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to