Remove cleanups from find_frame_funname

This changes find_frame_funname to return a unique_xmalloc_ptr and
then fixes up the callers.  This removes several cleanups.

ChangeLog
2017-09-11  Tom Tromey  <tom@tromey.com>

	* ada-lang.c (is_known_support_routine): Update.
	(ada_unhandled_exception_name_addr_from_raise): Update.
	* guile/scm-frame.c (gdbscm_frame_name): Update.
	* python/py-frame.c (frapy_name): Update.
	(frapy_function): Update.
	* stack.h (find_frame_funname): Update.
	* stack.c (find_frame_funname): Return unique_xmalloc_ptr.
	(print_frame): Update.
This commit is contained in:
Tom Tromey
2017-09-09 10:14:52 -06:00
parent d6b9b80f94
commit c6dc63a162
6 changed files with 49 additions and 55 deletions

View File

@ -119,7 +119,7 @@ static PyObject *
frapy_name (PyObject *self, PyObject *args)
{
struct frame_info *frame;
char *name = NULL;
gdb::unique_xmalloc_ptr<char> name;
enum language lang;
PyObject *result;
@ -127,19 +127,18 @@ frapy_name (PyObject *self, PyObject *args)
{
FRAPY_REQUIRE_VALID (self, frame);
find_frame_funname (frame, &name, &lang, NULL);
name = find_frame_funname (frame, &lang, NULL);
}
CATCH (except, RETURN_MASK_ALL)
{
xfree (name);
GDB_PY_HANDLE_EXCEPTION (except);
}
END_CATCH
if (name)
{
result = PyUnicode_Decode (name, strlen (name), host_charset (), NULL);
xfree (name);
result = PyUnicode_Decode (name.get (), strlen (name.get ()),
host_charset (), NULL);
}
else
{
@ -334,13 +333,12 @@ frapy_function (PyObject *self, PyObject *args)
TRY
{
char *funname;
enum language funlang;
FRAPY_REQUIRE_VALID (self, frame);
find_frame_funname (frame, &funname, &funlang, &sym);
xfree (funname);
gdb::unique_xmalloc_ptr<char> funname
= find_frame_funname (frame, &funlang, &sym);
}
CATCH (except, RETURN_MASK_ALL)
{