[Python-Dev] Patch to use dict subclasses in eval(), exec
Guido van Rossum
guido@python.org
Tue, 29 Oct 2002 07:09:22 -0500
> @@ -1696,9 +1701,10 @@
> }
> x = PyDict_GetItem(x, w);
> if (x == NULL) {
> - x = PyDict_GetItem(f->f_globals, w);
> + x = (fastglobals ? PyDict_GetItem : PyObject_GetItem)(f->f_globals, w);
> if (x == NULL) {
> - x = PyDict_GetItem(f->f_builtins, w);
> + if (!fastglobals) PyErr_Clear();
> + x = (slowbuiltins ? PyObject_GetItem : PyDict_GetItem)(f->f_builtins, w);
> if (x == NULL) {
> format_exc_check_arg(
> PyExc_NameError,
I don't see the extra DECREF here (and below) needed to compensate for
the fact that PyObject_GetItem() returns the object with incremented
refcount but PyDict_GetItem() doesn't.
What are you going to do with all the *other* places where
PyDict_GetItem() is used?
--Guido van Rossum (home page: http://www.python.org/~guido/)