Change enable_thread_stack_temporaries to an RAII class
authorTom Tromey <tom@tromey.com>
Wed, 7 Mar 2018 22:55:01 +0000 (15:55 -0700)
committerTom Tromey <tom@tromey.com>
Fri, 9 Mar 2018 04:57:14 +0000 (21:57 -0700)
commitfdf07f3aeba5906fec462fba33801c173862f241
treefd68e3d0ab16ad5ce80e87f998f4f5db71d8d845
parent0089daceaba4338046932e65a1b5882065416633
Change enable_thread_stack_temporaries to an RAII class

This started as a patch to change enable_thread_stack_temporaries to
be an RAII class, but then I noticed that this code used a VEC, so I
went ahead and did a bit more C++-ification, changing
stack_temporaries_enabled to a bool and changing stack_temporaries to
a std::vector.

Regression tested by the buildbot.

gdb/ChangeLog
2018-03-08  Tom Tromey  <tom@tromey.com>

* infcall.c (struct call_return_meta_info)
<stack_temporaries_enabled>: Remove.
(get_call_return_value, call_function_by_hand_dummy): Update.
* thread.c (disable_thread_stack_temporaries): Remove.
(enable_thread_stack_temporaries): Remove.
(thread_stack_temporaries_enabled_p): Return bool.
(push_thread_stack_temporary, value_in_thread_stack_temporaries)
(get_last_thread_stack_temporary): Update.
* eval.c (evaluate_subexp): Update.
* gdbthread.h (class enable_thread_stack_temporaries): Now a
class, not a function.
(value_ptr, value_vec): Remove typedefs.
(class thread_info) <stack_temporaries_enabled>: Now bool.
<stack_temporaries>: Now a std::vector.
(thread_stack_temporaries_enabled_p)
(value_in_thread_stack_temporaries): Return bool.
gdb/ChangeLog
gdb/eval.c
gdb/gdbthread.h
gdb/infcall.c
gdb/thread.c