* ada-lang.c (ada_value_primitive_packed_val): Don't
call value_incref. * value.c (set_value_parent): Incref the new parent and decref the old parent. (value_copy, value_primitive_field): Use set_value_parent.
This commit is contained in:
parent
b6807d988a
commit
40501e00a1
|
@ -1,3 +1,11 @@
|
|||
2013-05-06 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* ada-lang.c (ada_value_primitive_packed_val): Don't
|
||||
call value_incref.
|
||||
* value.c (set_value_parent): Incref the new parent and decref
|
||||
the old parent.
|
||||
(value_copy, value_primitive_field): Use set_value_parent.
|
||||
|
||||
2013-05-06 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* dwarf2loc.c (invalid_synthetic_pointer): Move earlier.
|
||||
|
|
|
@ -2325,7 +2325,6 @@ ada_value_primitive_packed_val (struct value *obj, const gdb_byte *valaddr,
|
|||
/* Also set the parent value. This is needed when trying to
|
||||
assign a new value (in inferior memory). */
|
||||
set_value_parent (v, obj);
|
||||
value_incref (obj);
|
||||
}
|
||||
else
|
||||
set_value_bitsize (v, bit_size);
|
||||
|
|
12
gdb/value.c
12
gdb/value.c
|
@ -811,7 +811,12 @@ value_parent (struct value *value)
|
|||
void
|
||||
set_value_parent (struct value *value, struct value *parent)
|
||||
{
|
||||
struct value *old = value->parent;
|
||||
|
||||
value->parent = parent;
|
||||
if (parent != NULL)
|
||||
value_incref (parent);
|
||||
value_free (old);
|
||||
}
|
||||
|
||||
gdb_byte *
|
||||
|
@ -1398,9 +1403,7 @@ value_copy (struct value *arg)
|
|||
|
||||
}
|
||||
val->unavailable = VEC_copy (range_s, arg->unavailable);
|
||||
val->parent = arg->parent;
|
||||
if (val->parent)
|
||||
value_incref (val->parent);
|
||||
set_value_parent (val, arg->parent);
|
||||
if (VALUE_LVAL (val) == lval_computed)
|
||||
{
|
||||
const struct lval_funcs *funcs = val->location.computed.funcs;
|
||||
|
@ -2652,8 +2655,7 @@ value_primitive_field (struct value *arg1, int offset,
|
|||
v->offset = (value_embedded_offset (arg1)
|
||||
+ offset
|
||||
+ (bitpos - v->bitpos) / 8);
|
||||
v->parent = arg1;
|
||||
value_incref (v->parent);
|
||||
set_value_parent (v, arg1);
|
||||
if (!value_lazy (arg1))
|
||||
value_fetch_lazy (v);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue