Change varobj_dynamic::child_iter to unique_ptr

This changes varobj_dynamic::child_iter to be a unique_ptr, removing
some manual management.

gdb/ChangeLog
2020-12-11  Tom Tromey  <tom@tromey.com>

	* varobj.c (struct varobj_dynamic) <child_iter>: Now unique_ptr.
	(varobj_get_iterator): Return unique_ptr.
	(update_dynamic_varobj_children, install_visualizer)
	(varobj::~varobj): Update.
	* python/python-internal.h (py_varobj_get_iterator): Return
	unique_ptr.
	* python/py-varobj.c (py_varobj_get_iterator): Return unique_ptr.
This commit is contained in:
Tom Tromey
2020-12-11 09:33:36 -07:00
parent 7446266408
commit 24fd95b4cd
4 changed files with 19 additions and 12 deletions

View File

@ -133,7 +133,7 @@ py_varobj_iter::py_varobj_iter (struct varobj *var, gdbpy_ref<> &&pyiter)
/* Return a new pretty-printed varobj iterator suitable to iterate
over VAR's children. */
struct varobj_iter *
std::unique_ptr<varobj_iter>
py_varobj_get_iterator (struct varobj *var, PyObject *printer)
{
gdbpy_enter_varobj enter_py (var);
@ -156,5 +156,6 @@ py_varobj_get_iterator (struct varobj *var, PyObject *printer)
error (_("Could not get children iterator"));
}
return new py_varobj_iter (var, std::move (iter));
return std::unique_ptr<varobj_iter> (new py_varobj_iter (var,
std::move (iter)));
}