Change breakpoints to use value_ref_ptr

Now that value_ref_ptr exists, it is possible to simplify breakpoint
and bpstat memory management by using a value_ref_ptr rather than
manually handling the reference counts.

gdb/ChangeLog
2018-04-06  Tom Tromey  <tom@tromey.com>

	* value.c (release_value): Update.
	* breakpoint.h (struct watchpoint) <val>: Now a value_ref_ptr.
	(struct bpstats) <val>: Now a value_ref_ptr.
	* breakpoint.c (update_watchpoint, breakpoint_init_inferior)
	(~bpstats, bpstats, bpstat_clear_actions, watchpoint_check)
	(~watchpoint, print_it_watchpoint, watch_command_1)
	(invalidate_bp_value_on_memory_change): Update.
This commit is contained in:
Tom Tromey
2018-04-03 17:58:58 -06:00
parent 22bc8444e6
commit 850645cfe8
4 changed files with 46 additions and 52 deletions

View File

@@ -1696,6 +1696,9 @@ release_value (struct value *val)
struct value *v;
bool released = false;
if (val == nullptr)
return value_ref_ptr ();
if (all_values == val)
{
all_values = val->next;