Browse Source

gdb/

Make some lval_funcs methods to default on NULL.
	* valops.c (value_fetch_lazy): Check if lval_computed read method is
	NULL.
	(value_assign): Check if lval_computed write method is NULL.
	* value.h (struct lval_funcs): Comment NULL values for read and write
	methods.
gdb_7_4-branch
Jan Kratochvil 15 years ago
parent
commit
ac71a68c85
  1. 9
      gdb/ChangeLog
  2. 9
      gdb/valops.c
  3. 6
      gdb/value.h

9
gdb/ChangeLog

@ -1,3 +1,12 @@
2011-10-09 Jan Kratochvil <jan.kratochvil@redhat.com>
Make some lval_funcs methods to default on NULL.
* valops.c (value_fetch_lazy): Check if lval_computed read method is
NULL.
(value_assign): Check if lval_computed write method is NULL.
* value.h (struct lval_funcs): Comment NULL values for read and write
methods.
2011-10-09 Jan Kratochvil <jan.kratochvil@redhat.com> 2011-10-09 Jan Kratochvil <jan.kratochvil@redhat.com>
Display @entry parameter values (without references). Display @entry parameter values (without references).

9
gdb/valops.c

@ -1110,7 +1110,8 @@ value_fetch_lazy (struct value *val)
watchpoints from trying to watch the saved frame pointer. */ watchpoints from trying to watch the saved frame pointer. */
value_free_to_mark (mark); value_free_to_mark (mark);
} }
else if (VALUE_LVAL (val) == lval_computed) else if (VALUE_LVAL (val) == lval_computed
&& value_computed_funcs (val)->read != NULL)
value_computed_funcs (val)->read (val); value_computed_funcs (val)->read (val);
else if (value_optimized_out (val)) else if (value_optimized_out (val))
/* Keep it optimized out. */; /* Keep it optimized out. */;
@ -1381,9 +1382,13 @@ value_assign (struct value *toval, struct value *fromval)
{ {
const struct lval_funcs *funcs = value_computed_funcs (toval); const struct lval_funcs *funcs = value_computed_funcs (toval);
if (funcs->write != NULL)
{
funcs->write (toval, fromval); funcs->write (toval, fromval);
}
break; break;
}
}
/* Fall through. */
default: default:
error (_("Left operand of assignment is not an lvalue.")); error (_("Left operand of assignment is not an lvalue."));

6
gdb/value.h

@ -156,13 +156,15 @@ struct lval_funcs
{ {
/* Fill in VALUE's contents. This is used to "un-lazy" values. If /* Fill in VALUE's contents. This is used to "un-lazy" values. If
a problem arises in obtaining VALUE's bits, this function should a problem arises in obtaining VALUE's bits, this function should
call 'error'. */ call 'error'. If it is NULL value_fetch_lazy on "un-lazy"
non-optimized-out value is an internal error. */
void (*read) (struct value *v); void (*read) (struct value *v);
/* Handle an assignment TOVAL = FROMVAL by writing the value of /* Handle an assignment TOVAL = FROMVAL by writing the value of
FROMVAL to TOVAL's location. The contents of TOVAL have not yet FROMVAL to TOVAL's location. The contents of TOVAL have not yet
been updated. If a problem arises in doing so, this function been updated. If a problem arises in doing so, this function
should call 'error'. */ should call 'error'. If it is NULL such TOVAL assignment is an error as
TOVAL is not considered as an lvalue. */
void (*write) (struct value *toval, struct value *fromval); void (*write) (struct value *toval, struct value *fromval);
/* Check the validity of some bits in VALUE. This should return 1 /* Check the validity of some bits in VALUE. This should return 1

Loading…
Cancel
Save