aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/py-tui.c33
1 files changed, 26 insertions, 7 deletions
diff --git a/gdb/python/py-tui.c b/gdb/python/py-tui.c
index 73b73f3..72e9c0d 100644
--- a/gdb/python/py-tui.c
+++ b/gdb/python/py-tui.c
@@ -47,6 +47,9 @@ struct gdbpy_tui_window
/* The TUI window, or nullptr if the window has been deleted. */
tui_py_window *window;
+
+ /* Return true if this object is valid. */
+ bool is_valid () const;
};
extern PyTypeObject gdbpy_tui_window_object_type
@@ -137,6 +140,14 @@ private:
gdbpy_ref<gdbpy_tui_window> m_wrapper;
};
+/* See gdbpy_tui_window declaration above. */
+
+bool
+gdbpy_tui_window::is_valid () const
+{
+ return window != nullptr && tui_active;
+}
+
tui_py_window::~tui_py_window ()
{
gdbpy_enter enter_py (get_current_arch (), current_language);
@@ -344,11 +355,23 @@ gdbpy_register_tui_window (PyObject *self, PyObject *args, PyObject *kw)
#define REQUIRE_WINDOW(Window) \
do { \
- if ((Window)->window == nullptr) \
+ if (!(Window)->is_valid ()) \
return PyErr_Format (PyExc_RuntimeError, \
_("TUI window is invalid.")); \
} while (0)
+/* Require that "Window" be a valid window. */
+
+#define REQUIRE_WINDOW_FOR_SETTER(Window) \
+ do { \
+ if (!(Window)->is_valid ()) \
+ { \
+ PyErr_Format (PyExc_RuntimeError, \
+ _("TUI window is invalid.")); \
+ return -1; \
+ } \
+ } while (0)
+
/* Python function which checks the validity of a TUI window
object. */
static PyObject *
@@ -356,7 +379,7 @@ gdbpy_tui_is_valid (PyObject *self, PyObject *args)
{
gdbpy_tui_window *win = (gdbpy_tui_window *) self;
- if (win->window != nullptr)
+ if (win->is_valid ())
Py_RETURN_TRUE;
Py_RETURN_FALSE;
}
@@ -428,11 +451,7 @@ gdbpy_tui_set_title (PyObject *self, PyObject *newvalue, void *closure)
{
gdbpy_tui_window *win = (gdbpy_tui_window *) self;
- if (win->window == nullptr)
- {
- PyErr_Format (PyExc_RuntimeError, _("TUI window is invalid."));
- return -1;
- }
+ REQUIRE_WINDOW_FOR_SETTER (win);
if (newvalue == nullptr)
{