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.
This commit is contained in:
Jan Kratochvil
2011-10-09 19:36:06 +00:00
parent e18b27534c
commit ac71a68c85
3 changed files with 21 additions and 5 deletions

View File

@@ -1110,7 +1110,8 @@ value_fetch_lazy (struct value *val)
watchpoints from trying to watch the saved frame pointer. */
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);
else if (value_optimized_out (val))
/* 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);
funcs->write (toval, fromval);
if (funcs->write != NULL)
{
funcs->write (toval, fromval);
break;
}
}
break;
/* Fall through. */
default:
error (_("Left operand of assignment is not an lvalue."));