diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/findvar.c | 4 | ||||
-rw-r--r-- | gdb/gnu-v2-abi.c | 2 | ||||
-rw-r--r-- | gdb/jv-valprint.c | 6 | ||||
-rw-r--r-- | gdb/valarith.c | 4 | ||||
-rw-r--r-- | gdb/valops.c | 4 | ||||
-rw-r--r-- | gdb/value.c | 5 | ||||
-rw-r--r-- | gdb/value.h | 3 |
8 files changed, 22 insertions, 11 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0b1cc05..9d3c61f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2005-02-07 Andrew Cagney <cagney@gnu.org> + * value.h (set_value_offset): Declare. + * value.c (set_value_offset): Declare. + * gnu-v2-abi.c, jv-valprint.c, valarith.c, valops.c: Update. + * findvar.c: Update. + * value.h (value_next): Declare. * value.c (value_next): Define. * breakpoint.c: Update. diff --git a/gdb/findvar.c b/gdb/findvar.c index 56d46fe..9675fc5 100644 --- a/gdb/findvar.c +++ b/gdb/findvar.c @@ -710,9 +710,9 @@ value_from_register (struct type *type, int regnum, struct frame_info *frame) if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG && len < register_size (current_gdbarch, regnum)) /* Big-endian, and we want less than full size. */ - v->offset = register_size (current_gdbarch, regnum) - len; + set_value_offset (v, register_size (current_gdbarch, regnum) - len); else - v->offset = 0; + set_value_offset (v, 0); memcpy (value_contents_raw (v), value_bytes + value_offset (v), len); } return v; diff --git a/gdb/gnu-v2-abi.c b/gdb/gnu-v2-abi.c index 87f4e9c..57bc0d8 100644 --- a/gdb/gnu-v2-abi.c +++ b/gdb/gnu-v2-abi.c @@ -162,7 +162,7 @@ gnuv2_virtual_fn_field (struct value **arg1p, struct fn_field * f, int j, if (TYPE_CODE (entry_type) == TYPE_CODE_STRUCT) { /* Move the `this' pointer according to the virtual function table. */ - arg1->offset += value_as_long (value_field (entry, 0)); + set_value_offset (arg1, value_offset (arg1) + value_as_long (value_field (entry, 0))); if (!value_lazy (arg1)) { diff --git a/gdb/jv-valprint.c b/gdb/jv-valprint.c index 2d20805..51ba6fb 100644 --- a/gdb/jv-valprint.c +++ b/gdb/jv-valprint.c @@ -163,15 +163,15 @@ java_value_print (struct value *val, struct ui_file *stream, int format, else { set_value_lazy (v, 1); - v->offset = 0; + set_value_offset (v, 0); } - next_v->offset = value_offset (v); + set_value_offset (next_v, value_offset (v)); for (reps = 1; i + reps < length; reps++) { set_value_lazy (next_v, 1); - next_v->offset += TYPE_LENGTH (el_type); + set_value_offset (next_v, value_offset (next_v) + TYPE_LENGTH (el_type)); if (memcmp (value_contents (v), value_contents (next_v), TYPE_LENGTH (el_type)) != 0) break; diff --git a/gdb/valarith.c b/gdb/valarith.c index 9bfe26b..6447b48 100644 --- a/gdb/valarith.c +++ b/gdb/valarith.c @@ -240,7 +240,7 @@ value_subscript (struct value *array, struct value *idx) VALUE_LVAL (v) = lval_internalvar_component; VALUE_ADDRESS (v) = VALUE_ADDRESS (array); VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array); - v->offset = offset + value_offset (array); + set_value_offset (v, offset + value_offset (array)); return v; } @@ -281,7 +281,7 @@ value_subscripted_rvalue (struct value *array, struct value *idx, int lowerbound VALUE_ADDRESS (v) = VALUE_ADDRESS (array); VALUE_REGNUM (v) = VALUE_REGNUM (array); VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array); - v->offset = value_offset (array) + elt_offs; + set_value_offset (v, value_offset (array) + elt_offs); return v; } diff --git a/gdb/valops.c b/gdb/valops.c index de1b1a7..754f801 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -1309,7 +1309,7 @@ search_struct_field (char *name, struct value *arg1, int offset, VALUE_LVAL (v2) = VALUE_LVAL (arg1); VALUE_ADDRESS (v2) = VALUE_ADDRESS (arg1); VALUE_FRAME_ID (v2) = VALUE_FRAME_ID (arg1); - v2->offset = value_offset (arg1) + boffset; + set_value_offset (v2, value_offset (arg1) + boffset); if (value_lazy (arg1)) set_value_lazy (v2, 1); else @@ -2775,7 +2775,7 @@ value_slice (struct value *array, int lowbound, int length) VALUE_LVAL (slice) = VALUE_LVAL (array); VALUE_ADDRESS (slice) = VALUE_ADDRESS (array); VALUE_FRAME_ID (slice) = VALUE_FRAME_ID (array); - slice->offset = value_offset (array) + offset; + set_value_offset (slice, value_offset (array) + offset); } return slice; } diff --git a/gdb/value.c b/gdb/value.c index c771359..b584fb9 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -145,6 +145,11 @@ value_offset (struct value *value) { return value->offset; } +void +set_value_offset (struct value *value, int offset) +{ + value->offset = offset; +} int value_bitpos (struct value *value) diff --git a/gdb/value.h b/gdb/value.h index cd1403b..b8d1490 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -172,7 +172,6 @@ struct value them. */ }; - /* 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. */ @@ -186,7 +185,9 @@ extern void deprecated_set_value_type (struct value *value, struct type *type); extern int value_bitsize (struct value *); extern int value_bitpos (struct value *); + extern int value_offset (struct value *); +extern void set_value_offset (struct value *, int offset); /* The comment from "struct value" reads: ``Is it modifiable? Only relevant if lval != not_lval.''. Shouldn't the value instead be |