From 5b0dac12b81f4af01506fb61184515147bee7a09 Mon Sep 17 00:00:00 2001 From: Nick Coghlan Date: Sun, 17 Jun 2012 15:45:11 +1000 Subject: Issue #13783: PEP 380 cleanup part 2, using the new identifier APIs in the generator implementation --- Misc/NEWS | 2 ++ Objects/genobject.c | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Misc/NEWS b/Misc/NEWS index 5a5813b..3bc93dd 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 6018e5b..597aed3 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); -- cgit v0.12