mirror of
https://github.com/python/cpython.git
synced 2025-10-17 12:18:23 +00:00
Add "gi_" (generator-iterator) prefix to names of genobject members.
Makes it much easier to find references via dumb editor search (former "frame" in particular was near-hopeless).
This commit is contained in:
parent
ee13dba1aa
commit
d8e1c9e177
1 changed files with 13 additions and 9 deletions
|
@ -111,8 +111,12 @@ staticforward PyTypeObject gentype;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
PyFrameObject *frame;
|
/* The gi_ prefix is intended to remind of generator-iterator. */
|
||||||
int running; /* true if generator is being executed */
|
|
||||||
|
PyFrameObject *gi_frame;
|
||||||
|
|
||||||
|
/* True if generator is being executed. */
|
||||||
|
int gi_running;
|
||||||
} genobject;
|
} genobject;
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
|
@ -123,15 +127,15 @@ gen_new(PyFrameObject *f)
|
||||||
Py_DECREF(f);
|
Py_DECREF(f);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
gen->frame = f;
|
gen->gi_frame = f;
|
||||||
gen->running = 0;
|
gen->gi_running = 0;
|
||||||
return (PyObject *)gen;
|
return (PyObject *)gen;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gen_dealloc(genobject *gen)
|
gen_dealloc(genobject *gen)
|
||||||
{
|
{
|
||||||
Py_DECREF(gen->frame);
|
Py_DECREF(gen->gi_frame);
|
||||||
PyObject_DEL(gen);
|
PyObject_DEL(gen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,10 +143,10 @@ static PyObject *
|
||||||
gen_iternext(genobject *gen)
|
gen_iternext(genobject *gen)
|
||||||
{
|
{
|
||||||
PyThreadState *tstate = PyThreadState_GET();
|
PyThreadState *tstate = PyThreadState_GET();
|
||||||
PyFrameObject *f = gen->frame;
|
PyFrameObject *f = gen->gi_frame;
|
||||||
PyObject *result;
|
PyObject *result;
|
||||||
|
|
||||||
if (gen->running) {
|
if (gen->gi_running) {
|
||||||
PyErr_SetString(PyExc_ValueError,
|
PyErr_SetString(PyExc_ValueError,
|
||||||
"generator already executing");
|
"generator already executing");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -156,9 +160,9 @@ gen_iternext(genobject *gen)
|
||||||
assert(f->f_back == NULL);
|
assert(f->f_back == NULL);
|
||||||
f->f_back = tstate->frame;
|
f->f_back = tstate->frame;
|
||||||
|
|
||||||
gen->running = 1;
|
gen->gi_running = 1;
|
||||||
result = eval_frame(f);
|
result = eval_frame(f);
|
||||||
gen->running = 0;
|
gen->gi_running = 0;
|
||||||
|
|
||||||
/* Don't keep the reference to f_back any longer than necessary. It
|
/* Don't keep the reference to f_back any longer than necessary. It
|
||||||
* may keep a chain of frames alive or it could create a reference
|
* may keep a chain of frames alive or it could create a reference
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue