From 5fe41fbfa22275d2a277b408bf52fedec34e8336 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 27 Jun 2011 19:21:51 +0000 Subject: * valops.c (find_overload_match): Call do_cleanups before early return. * top.c (execute_command): Call do_cleanups before early return. (command_loop): Likewise. * stack.c (backtrace_command): Make a null cleanup early. Don't conditionally call do_cleanups. * python/py-value.c (TRY_CATCH): Move cleanup handling into TRY_CATCH. * python/py-breakpoint.c (gdbpy_breakpoint_has_py_cond): Rearrange so cleanups are always run. * mi/mi-cmd-var.c (mi_cmd_var_delete): Reset old_cleanups. * findcmd.c (parse_find_args): Call do_cleanups on early return path. * dbxread.c (elfstab_build_psymtabs): Make a null cleanup early. Don't conditionally call do_cleanups. * cli/cli-script.c (execute_user_command): Initialize 'old_chain' later. --- gdb/python/py-value.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'gdb/python/py-value.c') diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c index 4381d52..fc5053a 100644 --- a/gdb/python/py-value.c +++ b/gdb/python/py-value.c @@ -553,8 +553,6 @@ static PyObject * valpy_str (PyObject *self) { char *s = NULL; - struct ui_file *stb; - struct cleanup *old_chain; PyObject *result; struct value_print_options opts; volatile struct gdb_exception except; @@ -562,19 +560,19 @@ valpy_str (PyObject *self) get_user_print_options (&opts); opts.deref_ref = 0; - stb = mem_fileopen (); - old_chain = make_cleanup_ui_file_delete (stb); - TRY_CATCH (except, RETURN_MASK_ALL) { + struct ui_file *stb = mem_fileopen (); + struct cleanup *old_chain = make_cleanup_ui_file_delete (stb); + common_val_print (((value_object *) self)->value, stb, 0, &opts, python_language); s = ui_file_xstrdup (stb, NULL); + + do_cleanups (old_chain); } GDB_PY_HANDLE_EXCEPTION (except); - do_cleanups (old_chain); - result = PyUnicode_Decode (s, strlen (s), host_charset (), NULL); xfree (s); -- cgit v1.1