diff options
author | Martin Hunt <hunt@redhat.com> | 2002-05-16 01:08:51 +0000 |
---|---|---|
committer | Martin Hunt <hunt@redhat.com> | 2002-05-16 01:08:51 +0000 |
commit | 0747acc067abc0d49e43fd30cf67673c9d194965 (patch) | |
tree | e38c9dc9436bf31d60b46f7dbc19cab4848f8967 /gdb/gdbtk | |
parent | 79dab4d94c0e99806ce045677d20fc83d83e4c02 (diff) | |
download | gdb-0747acc067abc0d49e43fd30cf67673c9d194965.tar.gz |
2002-05-15 Martin M. Hunt <hunt@redhat.com>
* generic/gdbtk-cmds.c (gdb_eval): For mem_file stuff, delete
the file when done and free memory.
Diffstat (limited to 'gdb/gdbtk')
-rw-r--r-- | gdb/gdbtk/generic/gdbtk-cmds.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gdb/gdbtk/generic/gdbtk-cmds.c b/gdb/gdbtk/generic/gdbtk-cmds.c index ae15532b9c6..10629af9448 100644 --- a/gdb/gdbtk/generic/gdbtk-cmds.c +++ b/gdb/gdbtk/generic/gdbtk-cmds.c @@ -622,6 +622,7 @@ gdb_eval (ClientData clientData, Tcl_Interp *interp, value_ptr val; struct ui_file *stb; long dummy; + char *result; if (objc != 2 && objc != 3) { @@ -638,10 +639,13 @@ gdb_eval (ClientData clientData, Tcl_Interp *interp, /* "Print" the result of the expression evaluation. */ stb = mem_fileopen (); + make_cleanup_ui_file_delete (stb); val_print (VALUE_TYPE (val), VALUE_CONTENTS (val), VALUE_EMBEDDED_OFFSET (val), VALUE_ADDRESS (val), stb, format, 0, 0, 0); - Tcl_SetObjResult (interp, Tcl_NewStringObj (ui_file_xstrdup (stb, &dummy), -1)); + result = ui_file_xstrdup (stb, &dummy); + Tcl_SetObjResult (interp, Tcl_NewStringObj (result, -1)); + xfree (result); result_ptr->flags |= GDBTK_IN_TCL_RESULT; do_cleanups (old_chain); |