aboutsummaryrefslogtreecommitdiff
path: root/gdb/value.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-04-03 17:58:58 -0600
committerTom Tromey <tom@tromey.com>2018-04-06 15:44:47 -0600
commit850645cfe82f5854af90ce73f2056712e20fcea2 (patch)
tree0d9a576e15bafdc37e68f6c3ca8e6a928f93e824 /gdb/value.c
parent22bc8444e6d377fd016253926c2a2597ff944842 (diff)
downloadgdb-850645cfe82f5854af90ce73f2056712e20fcea2.zip
gdb-850645cfe82f5854af90ce73f2056712e20fcea2.tar.gz
gdb-850645cfe82f5854af90ce73f2056712e20fcea2.tar.bz2
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.
Diffstat (limited to 'gdb/value.c')
-rw-r--r--gdb/value.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/value.c b/gdb/value.c
index 002270f..013fcfe 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -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;