diff options
author | Pedro Alves <palves@redhat.com> | 2015-09-09 18:23:25 +0100 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2015-09-09 18:25:15 +0100 |
commit | 0700e23e5f73b2a498526a79de34217429b44988 (patch) | |
tree | dde8013d97980f5e0882f028962b2e8739ddd0bd /gdb/infcmd.c | |
parent | cfc3163382898a537c742bee1bf8240b3c09df35 (diff) | |
download | gdb-0700e23e5f73b2a498526a79de34217429b44988.zip gdb-0700e23e5f73b2a498526a79de34217429b44988.tar.gz gdb-0700e23e5f73b2a498526a79de34217429b44988.tar.bz2 |
Garbage collect dummy_frame_ctx_saver
Since the "finish" command and infcall's FSMs are now responsible for
saving the return value, the dummy_frame_ctx_saver is no longer needed
anywhere.
gdb/ChangeLog:
2015-09-09 Pedro Alves <palves@redhat.com>
* infcall.c (struct dummy_frame_context_saver): Delete.
(dummy_frame_context_saver_free, dummy_frame_context_saver_dtor)
(dummy_frame_context_saver_drop)
(dummy_frame_context_saver_cleanup)
(dummy_frame_context_saver_get_regs)
(dummy_frame_context_saver_setup): Delete.
* infcall.h (dummy_frame_context_saver_drop)
(dummy_frame_context_saver_cleanup)
(dummy_frame_context_saver_get_regs, dummy_frame_context_saver):
Delete.
(get_return_value): Remove 'ctx_saver' paremeter. Adjust.
* inferior.h (get_return_value): Remove 'ctx_saver' paremeter.
* python/py-finishbreakpoint.c (bpfinishpy_pre_stop_hook): Adjust.
Diffstat (limited to 'gdb/infcmd.c')
-rw-r--r-- | gdb/infcmd.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/gdb/infcmd.c b/gdb/infcmd.c index 98c386a..4713490 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -1585,22 +1585,15 @@ advance_command (char *arg, int from_tty) right after an inferior call has finished. */ struct value * -get_return_value (struct value *function, struct type *value_type, - struct dummy_frame_context_saver *ctx_saver) +get_return_value (struct value *function, struct type *value_type) { - struct regcache *stop_regs = NULL; + struct regcache *stop_regs; struct gdbarch *gdbarch; struct value *value; - struct cleanup *cleanup = make_cleanup (null_cleanup, NULL); + struct cleanup *cleanup; - /* If registers were not saved, use the current registers. */ - if (ctx_saver != NULL) - stop_regs = dummy_frame_context_saver_get_regs (ctx_saver); - else - { - stop_regs = regcache_dup (get_current_regcache ()); - make_cleanup_regcache_xfree (stop_regs); - } + stop_regs = regcache_dup (get_current_regcache ()); + cleanup = make_cleanup_regcache_xfree (stop_regs); gdbarch = get_regcache_arch (stop_regs); @@ -1800,7 +1793,7 @@ finish_command_fsm_should_stop (struct thread_fsm *self) struct value *func; func = read_var_value (f->function, NULL, get_current_frame ()); - rv->value = get_return_value (func, rv->type, NULL); + rv->value = get_return_value (func, rv->type); rv->value_history_index = record_latest_value (rv->value); } } |