Avoid manual resource management in py-framefilter.c

This patch removes the last bit of manual resource management from
py-framefilter.c.  This will be useful in the next patch.

gdb/ChangeLog
2018-03-26  Tom Tromey  <tom@tromey.com>

	* python/py-framefilter.c (enumerate_args): Use
	gdb::unique_xmalloc_ptr.
This commit is contained in:
Tom Tromey 2017-04-23 11:23:43 -06:00
parent 63283d4a29
commit 7a630bc2f9
2 changed files with 10 additions and 15 deletions

View file

@ -1,3 +1,8 @@
2018-03-26 Tom Tromey <tom@tromey.com>
* python/py-framefilter.c (enumerate_args): Use
gdb::unique_xmalloc_ptr.
2018-03-26 Tom Tromey <tom@tromey.com>
* python/py-framefilter.c (py_print_frame): Return

View file

@ -560,6 +560,9 @@ enumerate_args (PyObject *iter,
}
END_CATCH
gdb::unique_xmalloc_ptr<char> arg_holder (arg.error);
gdb::unique_xmalloc_ptr<char> entry_holder (entryarg.error);
/* The object has not provided a value, so this is a frame
argument to be read by GDB. In this case we have to
account for entry-values. */
@ -571,11 +574,7 @@ enumerate_args (PyObject *iter,
args_type,
print_args_field,
NULL) == EXT_LANG_BT_ERROR)
{
xfree (arg.error);
xfree (entryarg.error);
return EXT_LANG_BT_ERROR;
}
return EXT_LANG_BT_ERROR;
}
if (entryarg.entry_kind != print_entry_values_no)
@ -589,8 +588,6 @@ enumerate_args (PyObject *iter,
}
CATCH (except, RETURN_MASK_ALL)
{
xfree (arg.error);
xfree (entryarg.error);
gdbpy_convert_exception (except);
return EXT_LANG_BT_ERROR;
}
@ -600,15 +597,8 @@ enumerate_args (PyObject *iter,
if (py_print_single_arg (out, NULL, &entryarg, NULL, &opts,
args_type, print_args_field, NULL)
== EXT_LANG_BT_ERROR)
{
xfree (arg.error);
xfree (entryarg.error);
return EXT_LANG_BT_ERROR;
}
return EXT_LANG_BT_ERROR;
}
xfree (arg.error);
xfree (entryarg.error);
}
else
{