mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
* python/py-frame.c (frapy_older, frapy_newer, gdbpy_newest_frame)
(gdbpy_selected_frame): Move object-construction code out of TRY_CATCH.
This commit is contained in:
parent
aa36459a92
commit
dcf8783234
@ -1,3 +1,9 @@
|
||||
2013-05-20 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* python/py-frame.c (frapy_older, frapy_newer, gdbpy_newest_frame)
|
||||
(gdbpy_selected_frame): Move object-construction code
|
||||
out of TRY_CATCH.
|
||||
|
||||
2013-05-20 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* python/py-arch.c (gdbpy_initialize_arch): Use
|
||||
|
@ -338,7 +338,7 @@ frame_info_to_frame_object (struct frame_info *frame)
|
||||
static PyObject *
|
||||
frapy_older (PyObject *self, PyObject *args)
|
||||
{
|
||||
struct frame_info *frame, *prev;
|
||||
struct frame_info *frame, *prev = NULL;
|
||||
volatile struct gdb_exception except;
|
||||
PyObject *prev_obj = NULL; /* Initialize to appease gcc warning. */
|
||||
|
||||
@ -347,16 +347,17 @@ frapy_older (PyObject *self, PyObject *args)
|
||||
FRAPY_REQUIRE_VALID (self, frame);
|
||||
|
||||
prev = get_prev_frame (frame);
|
||||
if (prev)
|
||||
prev_obj = (PyObject *) frame_info_to_frame_object (prev);
|
||||
else
|
||||
{
|
||||
Py_INCREF (Py_None);
|
||||
prev_obj = Py_None;
|
||||
}
|
||||
}
|
||||
GDB_PY_HANDLE_EXCEPTION (except);
|
||||
|
||||
if (prev)
|
||||
prev_obj = (PyObject *) frame_info_to_frame_object (prev);
|
||||
else
|
||||
{
|
||||
Py_INCREF (Py_None);
|
||||
prev_obj = Py_None;
|
||||
}
|
||||
|
||||
return prev_obj;
|
||||
}
|
||||
|
||||
@ -367,7 +368,7 @@ frapy_older (PyObject *self, PyObject *args)
|
||||
static PyObject *
|
||||
frapy_newer (PyObject *self, PyObject *args)
|
||||
{
|
||||
struct frame_info *frame, *next;
|
||||
struct frame_info *frame, *next = NULL;
|
||||
volatile struct gdb_exception except;
|
||||
PyObject *next_obj = NULL; /* Initialize to appease gcc warning. */
|
||||
|
||||
@ -376,16 +377,17 @@ frapy_newer (PyObject *self, PyObject *args)
|
||||
FRAPY_REQUIRE_VALID (self, frame);
|
||||
|
||||
next = get_next_frame (frame);
|
||||
if (next)
|
||||
next_obj = (PyObject *) frame_info_to_frame_object (next);
|
||||
else
|
||||
{
|
||||
Py_INCREF (Py_None);
|
||||
next_obj = Py_None;
|
||||
}
|
||||
}
|
||||
GDB_PY_HANDLE_EXCEPTION (except);
|
||||
|
||||
if (next)
|
||||
next_obj = (PyObject *) frame_info_to_frame_object (next);
|
||||
else
|
||||
{
|
||||
Py_INCREF (Py_None);
|
||||
next_obj = Py_None;
|
||||
}
|
||||
|
||||
return next_obj;
|
||||
}
|
||||
|
||||
@ -520,18 +522,16 @@ frapy_select (PyObject *self, PyObject *args)
|
||||
PyObject *
|
||||
gdbpy_newest_frame (PyObject *self, PyObject *args)
|
||||
{
|
||||
struct frame_info *frame;
|
||||
PyObject *frame_obj = NULL; /* Initialize to appease gcc warning. */
|
||||
struct frame_info *frame = NULL;
|
||||
volatile struct gdb_exception except;
|
||||
|
||||
TRY_CATCH (except, RETURN_MASK_ALL)
|
||||
{
|
||||
frame = get_current_frame ();
|
||||
frame_obj = frame_info_to_frame_object (frame);
|
||||
}
|
||||
GDB_PY_HANDLE_EXCEPTION (except);
|
||||
|
||||
return frame_obj;
|
||||
return frame_info_to_frame_object (frame);
|
||||
}
|
||||
|
||||
/* Implementation of gdb.selected_frame () -> gdb.Frame.
|
||||
@ -540,18 +540,16 @@ gdbpy_newest_frame (PyObject *self, PyObject *args)
|
||||
PyObject *
|
||||
gdbpy_selected_frame (PyObject *self, PyObject *args)
|
||||
{
|
||||
struct frame_info *frame;
|
||||
PyObject *frame_obj = NULL; /* Initialize to appease gcc warning. */
|
||||
struct frame_info *frame = NULL;
|
||||
volatile struct gdb_exception except;
|
||||
|
||||
TRY_CATCH (except, RETURN_MASK_ALL)
|
||||
{
|
||||
frame = get_selected_frame ("No frame is currently selected.");
|
||||
frame_obj = frame_info_to_frame_object (frame);
|
||||
}
|
||||
GDB_PY_HANDLE_EXCEPTION (except);
|
||||
|
||||
return frame_obj;
|
||||
return frame_info_to_frame_object (frame);
|
||||
}
|
||||
|
||||
/* Implementation of gdb.stop_reason_string (Integer) -> String.
|
||||
|
Loading…
Reference in New Issue
Block a user