[PATCH 18/40] fix py-breakpoint.c

Tom Tromey
2013-05-09T18:51:40Z

One return path in bppy_get_commands was missing a do_cleanups call.

* python/py-breakpoint.c (bppy_get_commands): Call do_cleanups
along all return paths.
---
gdb/python/py-breakpoint.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c
index 5e5f9b3..d099892 100644
--- a/gdb/python/py-breakpoint.c
+++ b/gdb/python/py-breakpoint.c
@@ -489,7 +489,11 @@ bppy_get_commands (PyObject *self, void *closure)
print_command_lines (current_uiout, breakpoint_commands (bp), 0);
}
ui_out_redirect (current_uiout, NULL);
- GDB_PY_HANDLE_EXCEPTION (except);
+ if (except.reason < 0)
+ {
+ do_cleanups (chain);
+ GDB_PY_HANDLE_EXCEPTION (except);
+ }

cmdstr = ui_file_xstrdup (string_file, &length);
make_cleanup (xfree, cmdstr);
--
1.8.1.4