diff options
author | Keith Seitz <keiths@redhat.com> | 2013-05-22 21:16:17 +0000 |
---|---|---|
committer | Keith Seitz <keiths@redhat.com> | 2013-05-22 21:16:17 +0000 |
commit | 6fcd25589f95ed1c663b4993b5faa47fad2389d4 (patch) | |
tree | 6df1b09621ac5b661cb09f20ed5afb80516c1daf /gdb/python | |
parent | 72de6e69758282b35491e7289d368eb7542f638f (diff) | |
download | gdb-6fcd25589f95ed1c663b4993b5faa47fad2389d4.tar.gz |
* ada-lang.c (is_known_support_routine): Add explicit free of
'func_name' from find_frame_funname.
(ada_unhandled_exception_name_addr_from_raise): Add cleanups
for func_name from find_frame_funname.
* python/py-frame.c (frapy_name): Add explicit free of
'name' from find_frame_funname.
* stack.c (find_frame_funname): Add comment explaining that
funcp must be freed by the caller.
Return copy of symbol names instead of pointers.
(print_frame): Add a cleanup for 'funname' from
find_frame_funname.
* stack.h (find_frame_funname): Remove "const" from
'funname' parameter.
Diffstat (limited to 'gdb/python')
-rw-r--r-- | gdb/python/py-frame.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gdb/python/py-frame.c b/gdb/python/py-frame.c index cf7cc27726a..c29d626cbdf 100644 --- a/gdb/python/py-frame.c +++ b/gdb/python/py-frame.c @@ -122,7 +122,7 @@ static PyObject * frapy_name (PyObject *self, PyObject *args) { struct frame_info *frame; - const char *name; + char *name = NULL; enum language lang; PyObject *result; volatile struct gdb_exception except; @@ -133,10 +133,17 @@ frapy_name (PyObject *self, PyObject *args) find_frame_funname (frame, &name, &lang, NULL); } + + if (except.reason < 0) + xfree (name); + GDB_PY_HANDLE_EXCEPTION (except); if (name) - result = PyUnicode_Decode (name, strlen (name), host_charset (), NULL); + { + result = PyUnicode_Decode (name, strlen (name), host_charset (), NULL); + xfree (name); + } else { result = Py_None; |