diff options
author | Tom Tromey <tom@tromey.com> | 2020-12-11 09:33:36 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-12-11 09:33:39 -0700 |
commit | 60ee72f6d3bf10b4bd3ef1315c72c4551c459224 (patch) | |
tree | ecabe94538b876c29844cd4bd542030b6bcefb96 /gdb/varobj.c | |
parent | 54746ce37a483e235ac128b6f545be9888bf3521 (diff) | |
download | gdb-60ee72f6d3bf10b4bd3ef1315c72c4551c459224.zip gdb-60ee72f6d3bf10b4bd3ef1315c72c4551c459224.tar.gz gdb-60ee72f6d3bf10b4bd3ef1315c72c4551c459224.tar.bz2 |
Change varobj_iter::next to return unique_ptr
This changes varobj_iter::next to return a unique_ptr. This fits in
with the ongoing theme of trying to express these ownership transfers
via the type system.
gdb/ChangeLog
2020-12-11 Tom Tromey <tom@tromey.com>
* varobj.c (update_dynamic_varobj_children): Update.
* varobj-iter.h (struct varobj_iter) <next>: Change return type.
* python/py-varobj.c (struct py_varobj_iter) <next>: Change return
type.
(py_varobj_iter::next): Likewise.
Diffstat (limited to 'gdb/varobj.c')
-rw-r--r-- | gdb/varobj.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/gdb/varobj.c b/gdb/varobj.c index 80de679..e9856ea 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -719,12 +719,12 @@ update_dynamic_varobj_children (struct varobj *var, are more children. */ for (; to < 0 || i < to + 1; ++i) { - varobj_item *item; + std::unique_ptr<varobj_item> item; /* See if there was a leftover from last time. */ if (var->dynamic->saved_item != NULL) { - item = var->dynamic->saved_item; + item = std::unique_ptr<varobj_item> (var->dynamic->saved_item); var->dynamic->saved_item = NULL; } else @@ -753,13 +753,11 @@ update_dynamic_varobj_children (struct varobj *var, can_mention ? newobj : NULL, can_mention ? unchanged : NULL, can_mention ? cchanged : NULL, i, - item); - - delete item; + item.get ()); } else { - var->dynamic->saved_item = item; + var->dynamic->saved_item = item.release (); /* We want to truncate the child list just before this element. */ |