Remove make_cleanup_value_free

This removes make_cleanup_value_free, in favor of a unique_ptr
specialization.

Regression tested by the buildbot.

gdb/ChangeLog
2017-10-08  Tom Tromey  <tom@tromey.com>

	* utils.h (make_cleanup_value_free): Remove.
	* utils.c (do_value_free, struct cleanup): Remove.
	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full) <DWARF_VALUE_STACK>:
	Use gdb_value_up.
	* value.h (struct value_deleter): New.
	(gdb_value_up): New typedef.
This commit is contained in:
Tom Tromey 2017-10-08 12:20:49 -06:00
parent b9c04fb268
commit 757325a3f2
5 changed files with 25 additions and 21 deletions

View file

@ -1018,6 +1018,21 @@ extern void value_incref (struct value *val);
extern void value_free (struct value *val);
/* A free policy class to interface std::unique_ptr with
value_free. */
struct value_deleter
{
void operator() (struct value *value) const
{
value_free (value);
}
};
/* A unique pointer to a struct value. */
typedef std::unique_ptr<struct value, value_deleter> gdb_value_up;
extern void free_all_values (void);
extern void free_value_chain (struct value *v);