diff options
author | Thiago Jung Bauermann <bauerman@br.ibm.com> | 2011-05-13 04:34:25 +0000 |
---|---|---|
committer | Thiago Jung Bauermann <bauerman@br.ibm.com> | 2011-05-13 04:34:25 +0000 |
commit | 028d0ed5d19d1c164d9ee4f4f85743ca7e955e52 (patch) | |
tree | 971789eee44563ba8452513041730d09151eac1e /gdb/utils.c | |
parent | c9eaa05f39a20ebdd807dcf8141a22e08bb613f1 (diff) | |
download | gdb-028d0ed5d19d1c164d9ee4f4f85743ca7e955e52.zip gdb-028d0ed5d19d1c164d9ee4f4f85743ca7e955e52.tar.gz gdb-028d0ed5d19d1c164d9ee4f4f85743ca7e955e52.tar.bz2 |
gdb/
* mi/mi-main.c (mi_cmd_execute): Use cleanup from
prepare_execute_command.
* top.c (prepare_execute_command): Return cleanup.
(execute_command): Use cleanup from prepare_execute_command.
* top.h (prepare_execute_command): Change prototype to return
cleanup.
* defs.h (struct value): Add opaque declaration.
(make_cleanup_value_free_to_mark): Add prototype.
* utils.c (do_value_free_to_mark): New function.
(make_cleanup_value_free_to_mark): Likewise.
gdb/testsuite/
* gdb.python/py-function.exp: Test setting a value from a function
which executes a command.
Diffstat (limited to 'gdb/utils.c')
-rw-r--r-- | gdb/utils.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gdb/utils.c b/gdb/utils.c index a1dac63..3e4a54d 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -431,6 +431,23 @@ make_cleanup_restore_ui_file (struct ui_file **variable) return make_cleanup_dtor (do_restore_ui_file, (void *) c, xfree); } +/* Helper for make_cleanup_value_free_to_mark. */ + +static void +do_value_free_to_mark (void *value) +{ + value_free_to_mark ((struct value *) value); +} + +/* Free all values allocated since MARK was obtained by value_mark + (except for those released) when the cleanup is run. */ + +struct cleanup * +make_cleanup_value_free_to_mark (struct value *mark) +{ + return make_my_cleanup (&cleanup_chain, do_value_free_to_mark, mark); +} + struct cleanup * make_my_cleanup2 (struct cleanup **pmy_chain, make_cleanup_ftype *function, void *arg, void (*free_arg) (void *)) |