aboutsummaryrefslogtreecommitdiff
path: root/gdb/guile/scm-objfile.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-05-26 23:26:39 -0600
committerTom Tromey <tom@tromey.com>2018-07-17 13:21:47 -0600
commita1a31cb8dce7d1bfa7878dc08c28af330ef2ed69 (patch)
tree7819771634fdc0ad4ef245800c3b354abf6382e4 /gdb/guile/scm-objfile.c
parent15bf30027bcb167833a0ca2c619c03f177ef1ba4 (diff)
downloadgdb-a1a31cb8dce7d1bfa7878dc08c28af330ef2ed69.zip
gdb-a1a31cb8dce7d1bfa7878dc08c28af330ef2ed69.tar.gz
gdb-a1a31cb8dce7d1bfa7878dc08c28af330ef2ed69.tar.bz2
Return unique_xmalloc_ptr from gdbscm_safe_eval_string
This changes gdbscm_safe_eval_string to return a unique_xmalloc_ptr. This allows for the removal of some cleanups. It also fixes a potential latent memory leak in gdbscm_set_backtrace. gdb/ChangeLog 2018-07-17 Tom Tromey <tom@tromey.com> * guile/guile.c (gdbscm_eval_from_control_command): Update. * guile/guile-internal.h (gdbscm_safe_eval_string): Update. * guile/scm-objfile.c (gdbscm_execute_objfile_script): Update. * guile/scm-safe-call.c (gdbscm_safe_eval_string): Return unique_xmalloc_ptr.
Diffstat (limited to 'gdb/guile/scm-objfile.c')
-rw-r--r--gdb/guile/scm-objfile.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/gdb/guile/scm-objfile.c b/gdb/guile/scm-objfile.c
index 9917119..ccf7c66 100644
--- a/gdb/guile/scm-objfile.c
+++ b/gdb/guile/scm-objfile.c
@@ -336,16 +336,12 @@ gdbscm_execute_objfile_script (const struct extension_language_defn *extlang,
struct objfile *objfile, const char *name,
const char *script)
{
- char *msg;
-
ofscm_current_objfile = objfile;
- msg = gdbscm_safe_eval_string (script, 0 /* display_result */);
+ gdb::unique_xmalloc_ptr<char> msg
+ = gdbscm_safe_eval_string (script, 0 /* display_result */);
if (msg != NULL)
- {
- fprintf_filtered (gdb_stderr, "%s", msg);
- xfree (msg);
- }
+ fprintf_filtered (gdb_stderr, "%s", msg.get ());
ofscm_current_objfile = NULL;
}