diff options
author | Tom Tromey <tom@tromey.com> | 2018-05-26 23:21:23 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-07-17 13:21:47 -0600 |
commit | 15bf30027bcb167833a0ca2c619c03f177ef1ba4 (patch) | |
tree | 117580eb74accac812d65ad76bb839237f0ab4d3 /gdb/guile/scm-exception.c | |
parent | 7eb1a66c26b57803bb4245f84cf15278297bb649 (diff) | |
download | binutils-15bf30027bcb167833a0ca2c619c03f177ef1ba4.zip binutils-15bf30027bcb167833a0ca2c619c03f177ef1ba4.tar.gz binutils-15bf30027bcb167833a0ca2c619c03f177ef1ba4.tar.bz2 |
Change gdbscm_exception_message_to_string to return a unique_xmalloc_ptr
This changes gdbscm_exception_message_to_string to return a
unique_xmalloc_ptr, allowing for the removal of some cleanups.
unique_xmalloc_ptr was chosen because at the root of the call chains
is a function from Guile that returns a malloc'd string.
gdb/ChangeLog
2018-07-17 Tom Tromey <tom@tromey.com>
* guile/scm-param.c (pascm_signal_setshow_error): Update.
* guile/guile-internal.h (gdbscm_exception_message_to_string):
Update.
* guile/scm-cmd.c (cmdscm_function): Update.
* guile/scm-pretty-print.c
(ppscm_print_exception_unless_memory_error): Update.
* guile/scm-exception.c (gdbscm_exception_message_to_string):
Return unique_xmalloc_ptr.
Diffstat (limited to 'gdb/guile/scm-exception.c')
-rw-r--r-- | gdb/guile/scm-exception.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/gdb/guile/scm-exception.c b/gdb/guile/scm-exception.c index e4b81a1..f0bcdcd 100644 --- a/gdb/guile/scm-exception.c +++ b/gdb/guile/scm-exception.c @@ -575,16 +575,13 @@ gdbscm_print_gdb_exception (SCM port, SCM exception) /* Return a string description of <gdb:exception> EXCEPTION. If EXCEPTION is a gdb:with-stack exception, unwrap it, a backtrace - is never returned as part of the result. + is never returned as part of the result. */ - Space for the result is malloc'd, the caller must free. */ - -char * +gdb::unique_xmalloc_ptr<char> gdbscm_exception_message_to_string (SCM exception) { SCM port = scm_open_output_string (); SCM key, args; - char *result; gdb_assert (gdbscm_is_exception (exception)); @@ -601,9 +598,9 @@ gdbscm_exception_message_to_string (SCM exception) } gdbscm_print_exception_message (port, SCM_BOOL_F, key, args); - result = gdbscm_scm_to_c_string (scm_get_output_string (port)); + gdb::unique_xmalloc_ptr<char> result + (gdbscm_scm_to_c_string (scm_get_output_string (port))); scm_close_port (port); - return result; } |