From 4c6933327e2e30c97ea4e49dc6f7e0f48941fd6f Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 19 Jul 2018 16:34:55 +0100 Subject: Eliminate remaining gdb/guile cleanups The remaining gdb/guile cleanups all handle the memory returned by gdbscm_scm_to_c_string. This commit makes gdbscm_scm_to_c_string return a gdb::unique_xmalloc_ptr instead of a naked pointer, and eliminates the remaining cleanups. gdb/ChangeLog: 2018-07-19 Pedro Alves * guile/guile-internal.h (gdbscm_scm_to_c_string): Now returns a gdb::unique_xmalloc_ptr. * guile/scm-breakpoint.c (gdbscm_set_breakpoint_condition_x): Adjust to use dbscm_wrap and gdb::unique_xmalloc_ptr. * guile/scm-exception.c (gdbscm_exception_message_to_string): Use copy-initialization. * guile/scm-pretty-print.c (ppscm_print_children): Use gdb::unique_xmalloc_ptr instead of cleanups. (gdbscm_apply_val_pretty_printer): Remove cleanups. * guile/scm-string.c (gdbscm_scm_to_c_string): Now returns a gdb::unique_xmalloc_ptr. * guile/scm-type.c (gdbscm_type_field, gdbscm_type_has_field_p): Adjust to use gdb::unique_xmalloc_ptr. * guile/scm-utils.c (extract_arg): Adjust. * guile/scm-value.c (gdbscm_value_field): Adjust to use gdb::unique_xmalloc_ptr instead of a cleanup. --- gdb/guile/scm-string.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gdb/guile/scm-string.c') diff --git a/gdb/guile/scm-string.c b/gdb/guile/scm-string.c index 56e14c3..5779509 100644 --- a/gdb/guile/scm-string.c +++ b/gdb/guile/scm-string.c @@ -48,13 +48,12 @@ gdbscm_scm_from_c_string (const char *string) /* Convert an SCM string to a C (latin1) string. "latin1" is chosen because Guile won't throw an exception. - Space for the result is allocated with malloc, caller must free. It is an error to call this if STRING is not a string. */ -char * +gdb::unique_xmalloc_ptr gdbscm_scm_to_c_string (SCM string) { - return scm_to_latin1_string (string); + return gdb::unique_xmalloc_ptr (scm_to_latin1_string (string)); } /* Use printf to construct a Scheme string. */ -- cgit v1.1