/* GDB/Scheme charset interface.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-2020 Free Software Foundation, Inc.
This file is part of GDB.
/* 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<char>
gdbscm_scm_to_c_string (SCM string)
{
- return scm_to_latin1_string (string);
+ return gdb::unique_xmalloc_ptr<char> (scm_to_latin1_string (string));
}
/* Use printf to construct a Scheme string. */
gdbscm_scm_from_printf (const char *format, ...)
{
va_list args;
- char *string;
SCM result;
va_start (args, format);
- string = xstrvprintf (format, args);
+ std::string string = string_vprintf (format, args);
va_end (args);
- result = scm_from_latin1_string (string);
- xfree (string);
+ result = scm_from_latin1_string (string.c_str ());
return result;
}