Remove some gotos from Python
This patch slightly refactors a couple of spots in the Python code to avoid some gotos. gdb/ChangeLog 2017-02-10 Tom Tromey <tom@tromey.com> * python/python.c (do_start_initialization): New function, from _initialize_python. (_initialize_python): Call do_start_initialization. * python/py-linetable.c (ltpy_iternext): Use explicit returns, not goto.
This commit is contained in:
parent
1bdfaf42ac
commit
2bb8f23195
3 changed files with 182 additions and 166 deletions
|
@ -407,7 +407,10 @@ ltpy_iternext (PyObject *self)
|
|||
LTPY_REQUIRE_VALID (iter_obj->source, symtab);
|
||||
|
||||
if (iter_obj->current_index >= SYMTAB_LINETABLE (symtab)->nitems)
|
||||
goto stop_iteration;
|
||||
{
|
||||
PyErr_SetNone (PyExc_StopIteration);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
item = &(SYMTAB_LINETABLE (symtab)->item[iter_obj->current_index]);
|
||||
|
||||
|
@ -419,7 +422,10 @@ ltpy_iternext (PyObject *self)
|
|||
|
||||
/* Exit if the internal value is the last item in the line table. */
|
||||
if (iter_obj->current_index >= SYMTAB_LINETABLE (symtab)->nitems)
|
||||
goto stop_iteration;
|
||||
{
|
||||
PyErr_SetNone (PyExc_StopIteration);
|
||||
return NULL;
|
||||
}
|
||||
item = &(SYMTAB_LINETABLE (symtab)->item[iter_obj->current_index]);
|
||||
}
|
||||
|
||||
|
@ -427,10 +433,6 @@ ltpy_iternext (PyObject *self)
|
|||
iter_obj->current_index++;
|
||||
|
||||
return obj;
|
||||
|
||||
stop_iteration:
|
||||
PyErr_SetNone (PyExc_StopIteration);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Implementation of gdb.LineTableIterator.is_valid (self) -> Boolean.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue