From af1c6971291cbc55ad9f3dc1dec7fd86f7f5be2f Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 30 May 2013 17:16:05 +0000 Subject: fix py-frame.c A couple return paths in frapy_read_var were missing do_cleanups calls. * python/py-frame.c (frapy_read_var): Call do_cleanups along all return paths. --- gdb/python/py-frame.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'gdb/python') diff --git a/gdb/python/py-frame.c b/gdb/python/py-frame.c index c29d626..2615ddf 100644 --- a/gdb/python/py-frame.c +++ b/gdb/python/py-frame.c @@ -461,6 +461,7 @@ frapy_read_var (PyObject *self, PyObject *args) { PyErr_SetString (PyExc_RuntimeError, _("Second argument must be block.")); + do_cleanups (cleanup); return NULL; } } @@ -473,7 +474,11 @@ frapy_read_var (PyObject *self, PyObject *args) block = get_frame_block (frame, NULL); var = lookup_symbol (var_name, block, VAR_DOMAIN, NULL); } - GDB_PY_HANDLE_EXCEPTION (except); + if (except.reason < 0) + { + do_cleanups (cleanup); + GDB_PY_HANDLE_EXCEPTION (except); + } if (!var) { -- cgit v1.1