2005-02-07 Andrew Cagney <cagney@gnu.org>

* value.h (value_next): Declare.
	* value.c (value_next): Define.
	* breakpoint.c: Update.
This commit is contained in:
Andrew Cagney 2005-02-08 01:59:38 +00:00
parent 88e3b34b7c
commit 17cf0ecde3
4 changed files with 20 additions and 5 deletions

View file

@ -1,5 +1,9 @@
2005-02-07 Andrew Cagney <cagney@gnu.org>
* value.h (value_next): Declare.
* value.c (value_next): Define.
* breakpoint.c: Update.
* value.h (deprecated_set_value_modifiable)
(deprecated_value_modifiable): Declare.
* value.c (deprecated_set_value_modifiable): Define.

View file

@ -743,7 +743,7 @@ static void free_valchain (struct bp_location *b)
the next time the watchpoint is inserted. */
for (v = b->owner->val_chain; v; v = n)
{
n = v->next;
n = value_next (v);
value_free (v);
}
b->owner->val_chain = NULL;
@ -938,7 +938,7 @@ insert_bp_location (struct bp_location *bpt,
bpt->inserted = 1;
/* Look at each value on the value chain. */
for (; v; v = v->next)
for (; v; v = value_next (v))
{
/* If it's a memory location, and GDB actually needed
its contents to evaluate the expression, then we
@ -1470,7 +1470,7 @@ remove_breakpoint (struct bp_location *b, insertion_state_t is)
b->inserted = (is == mark_inserted);
/* Walk down the saved value chain. */
for (v = b->owner->val_chain; v; v = v->next)
for (v = b->owner->val_chain; v; v = value_next (v))
{
/* For each memory reference remove the watchpoint
at that address. */
@ -2725,7 +2725,7 @@ bpstat_stop_status (CORE_ADDR bp_addr, ptid_t ptid, int stopped_by_watchpoint)
if (!target_stopped_data_address (&current_target, &addr))
continue;
for (v = b->val_chain; v; v = v->next)
for (v = b->val_chain; v; v = value_next (v))
{
if (VALUE_LVAL (v) == lval_memory
&& ! value_lazy (v))
@ -5789,7 +5789,7 @@ can_use_hardware_watchpoint (struct value *v)
function calls are special in any way. So this function may not
notice that an expression involving an inferior function call
can't be watched with hardware watchpoints. FIXME. */
for (; v; v = v->next)
for (; v; v = value_next (v))
{
if (VALUE_LVAL (v) == lval_memory)
{

View file

@ -123,6 +123,12 @@ allocate_repeat_value (struct type *type, int count)
/* Accessor methods. */
struct value *
value_next (struct value *value)
{
return value->next;
}
struct type *
value_type (struct value *value)
{

View file

@ -173,6 +173,11 @@ struct value
};
/* Values are stored in a chain, so that they can be deleted easily
over calls to the inferior. Values assigned to internal variables
or put into the value history are taken off this list. */
struct value *value_next (struct value *);
extern struct type *value_type (struct value *);
/* This is being used to change the type of an existing value, that
code should instead be creating a new value with the changed type