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:
parent
b9c04fb268
commit
757325a3f2
5 changed files with 25 additions and 21 deletions
15
gdb/value.h
15
gdb/value.h
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue