mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 10:35:12 +08:00
Add ATTRIBUTE_UNUSED_RESULT to ref_ptr::release
This applies ATTRIBUTE_UNUSED_RESULT to ref_ptr::release and updates a few spots to comply. I believe one use in install_default_visualizer was in error, fixed by this patch. gdb/ChangeLog 2019-03-05 Tom Tromey <tromey@adacore.com> * varobj.c (update_dynamic_varobj_children): Update. (install_default_visualizer): Use reset, not release. * value.c (set_internalvar): Update. * dwarf2loc.c (value_of_dwarf_reg_entry): Update. * common/gdb_ref_ptr.h (class ref_ptr) <release>: Add ATTRIBUTE_UNUSED_RESULT.
This commit is contained in:
parent
88a774b998
commit
895dafa679
@ -1,3 +1,12 @@
|
||||
2019-03-05 Tom Tromey <tromey@adacore.com>
|
||||
|
||||
* varobj.c (update_dynamic_varobj_children): Update.
|
||||
(install_default_visualizer): Use reset, not release.
|
||||
* value.c (set_internalvar): Update.
|
||||
* dwarf2loc.c (value_of_dwarf_reg_entry): Update.
|
||||
* common/gdb_ref_ptr.h (class ref_ptr) <release>: Add
|
||||
ATTRIBUTE_UNUSED_RESULT.
|
||||
|
||||
2019-03-05 Tom Tromey <tromey@adacore.com>
|
||||
|
||||
* remote.c (class scoped_remote_fd) <release>: Add
|
||||
|
@ -135,7 +135,7 @@ class ref_ptr
|
||||
/* Return this instance's referent, and stop managing this
|
||||
reference. The caller is now responsible for the ownership of
|
||||
the reference. */
|
||||
T *release ()
|
||||
ATTRIBUTE_UNUSED_RESULT T *release ()
|
||||
{
|
||||
T *result = m_obj;
|
||||
|
||||
|
@ -1472,9 +1472,8 @@ value_of_dwarf_reg_entry (struct type *type, struct frame_info *frame,
|
||||
target_type, caller_frame,
|
||||
caller_per_cu);
|
||||
|
||||
release_value (target_val).release ();
|
||||
val = allocate_computed_value (type, &entry_data_value_funcs,
|
||||
target_val /* closure */);
|
||||
release_value (target_val).release ());
|
||||
|
||||
/* Copy the referencing pointer to the new computed value. */
|
||||
memcpy (value_contents_raw (val), value_contents_raw (outer_val),
|
||||
|
10
gdb/value.c
10
gdb/value.c
@ -2274,20 +2274,20 @@ set_internalvar (struct internalvar *var, struct value *val)
|
||||
|
||||
default:
|
||||
new_kind = INTERNALVAR_VALUE;
|
||||
new_data.value = value_copy (val);
|
||||
new_data.value->modifiable = 1;
|
||||
struct value *copy = value_copy (val);
|
||||
copy->modifiable = 1;
|
||||
|
||||
/* Force the value to be fetched from the target now, to avoid problems
|
||||
later when this internalvar is referenced and the target is gone or
|
||||
has changed. */
|
||||
if (value_lazy (new_data.value))
|
||||
value_fetch_lazy (new_data.value);
|
||||
if (value_lazy (copy))
|
||||
value_fetch_lazy (copy);
|
||||
|
||||
/* Release the value from the value chain to prevent it from being
|
||||
deleted by free_all_values. From here on this function should not
|
||||
call error () until new_data is installed into the var->u to avoid
|
||||
leaking memory. */
|
||||
release_value (new_data.value).release ();
|
||||
new_data.value = release_value (copy).release ();
|
||||
|
||||
/* Internal variables which are created from values with a dynamic
|
||||
location don't need the location property of the origin anymore.
|
||||
|
@ -760,7 +760,7 @@ update_dynamic_varobj_children (struct varobj *var,
|
||||
/* Release vitem->value so its lifetime is not bound to the
|
||||
execution of a command. */
|
||||
if (item != NULL && item->value != NULL)
|
||||
release_value (item->value).release ();
|
||||
item->value = release_value (item->value).release ();
|
||||
}
|
||||
|
||||
if (item == NULL)
|
||||
@ -1127,7 +1127,7 @@ install_default_visualizer (struct varobj *var)
|
||||
}
|
||||
|
||||
if (pretty_printer == Py_None)
|
||||
pretty_printer.release ();
|
||||
pretty_printer.reset (nullptr);
|
||||
|
||||
install_visualizer (var->dynamic, NULL, pretty_printer.release ());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user