diff options
author | Pedro Alves <palves@redhat.com> | 2011-02-16 11:55:59 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2011-02-16 11:55:59 +0000 |
commit | 29976f3f7ebb0597b99d3d12cd4aed52921c8d64 (patch) | |
tree | 4e6c77fb913ecc6e5ec62a55ea88b937818fe72b /gdb/value.c | |
parent | cd24cfaa4f49cd34f25ef0bd97f8e52fc885b0b1 (diff) | |
download | gdb-29976f3f7ebb0597b99d3d12cd4aed52921c8d64.zip gdb-29976f3f7ebb0597b99d3d12cd4aed52921c8d64.tar.gz gdb-29976f3f7ebb0597b99d3d12cd4aed52921c8d64.tar.bz2 |
gdb/
* value.c (value_contents_copy_raw): Extend describing comment.
Assert that the destination contents we're overwriting are wholly
available.
* value.h (value_contents_copy): Extend describing comment.
Diffstat (limited to 'gdb/value.c')
-rw-r--r-- | gdb/value.c | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/gdb/value.c b/gdb/value.c index d2863db..011b5e7 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -844,11 +844,15 @@ value_contents_all (struct value *value) return result; } -/* Copy LENGTH bytes of SRC value's contents starting at SRC_OFFSET, - into DST value's contents, starting at DST_OFFSET. If unavailable - contents are being copied from SRC, the corresponding DST contents - are marked unavailable accordingly. Neither DST nor SRC may be - lazy values. */ +/* Copy LENGTH bytes of SRC value's (all) contents + (value_contents_all) starting at SRC_OFFSET, into DST value's (all) + contents, starting at DST_OFFSET. If unavailable contents are + being copied from SRC, the corresponding DST contents are marked + unavailable accordingly. Neither DST nor SRC may be lazy + values. + + It is assumed the contents of DST in the [DST_OFFSET, + DST_OFFSET+LENGTH) range are wholly available. */ void value_contents_copy_raw (struct value *dst, int dst_offset, @@ -863,6 +867,11 @@ value_contents_copy_raw (struct value *dst, int dst_offset, mean we'd be copying garbage. */ gdb_assert (!dst->lazy && !src->lazy); + /* The overwritten DST range gets unavailability ORed in, not + replaced. Make sure to remember to implement replacing if it + turns out actually necessary. */ + gdb_assert (value_bytes_available (dst, dst_offset, length)); + /* Copy the data. */ memcpy (value_contents_all_raw (dst) + dst_offset, value_contents_all_raw (src) + src_offset, @@ -883,12 +892,16 @@ value_contents_copy_raw (struct value *dst, int dst_offset, } } -/* Copy LENGTH bytes of SRC value's contents starting at SRC_OFFSET - byte, into DST value's contents, starting at DST_OFFSET. If - unavailable contents are being copied from SRC, the corresponding - DST contents are marked unavailable accordingly. DST must not be - lazy. If SRC is lazy, it will be fetched now. If SRC is not valid - (is optimized out), an error is thrown. */ +/* Copy LENGTH bytes of SRC value's (all) contents + (value_contents_all) starting at SRC_OFFSET byte, into DST value's + (all) contents, starting at DST_OFFSET. If unavailable contents + are being copied from SRC, the corresponding DST contents are + marked unavailable accordingly. DST must not be lazy. If SRC is + lazy, it will be fetched now. If SRC is not valid (is optimized + out), an error is thrown. + + It is assumed the contents of DST in the [DST_OFFSET, + DST_OFFSET+LENGTH) range are wholly available. */ void value_contents_copy (struct value *dst, int dst_offset, |