From: Nick Coghlan Date: Sun, 17 Jun 2012 05:45:11 +0000 (+1000) Subject: Issue #13783: PEP 380 cleanup part 2, using the new identifier APIs in the generator... X-Git-Tag: v3.3.0b1~215 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5b0dac12b81f4af01506fb61184515147bee7a09;p=python Issue #13783: PEP 380 cleanup part 2, using the new identifier APIs in the generator implementation --- diff --git a/Misc/NEWS b/Misc/NEWS index 5a5813b644..3bc93dd82d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,8 @@ What's New in Python 3.3.0 Beta 1? Core and Builtins ----------------- +- Issue #13783: Generator objects now use the identifier APIs internally + - Issue #14874: Restore charmap decoding speed to pre-PEP 393 levels. Patch by Serhiy Storchaka. diff --git a/Objects/genobject.c b/Objects/genobject.c index 6018e5b1a0..597aed37a1 100644 --- a/Objects/genobject.c +++ b/Objects/genobject.c @@ -149,13 +149,14 @@ static int gen_close_iter(PyObject *yf) { PyObject *retval = NULL; + _Py_IDENTIFIER(close); if (PyGen_CheckExact(yf)) { retval = gen_close((PyGenObject *)yf, NULL); if (retval == NULL) return -1; } else { - PyObject *meth = PyObject_GetAttrString(yf, "close"); + PyObject *meth = _PyObject_GetAttrId(yf, &PyId_close); if (meth == NULL) { if (!PyErr_ExceptionMatches(PyExc_AttributeError)) PyErr_WriteUnraisable(yf); @@ -295,6 +296,7 @@ gen_throw(PyGenObject *gen, PyObject *args) PyObject *tb = NULL; PyObject *val = NULL; PyObject *yf = gen_yf(gen); + _Py_IDENTIFIER(throw); if (!PyArg_UnpackTuple(args, "throw", 1, 3, &typ, &val, &tb)) return NULL; @@ -316,7 +318,7 @@ gen_throw(PyGenObject *gen, PyObject *args) ret = gen_throw((PyGenObject *)yf, args); gen->gi_running = 0; } else { - PyObject *meth = PyObject_GetAttrString(yf, "throw"); + PyObject *meth = _PyObject_GetAttrId(yf, &PyId_throw); if (meth == NULL) { if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { Py_DECREF(yf);