forked from Imagelibrary/binutils-gdb
gdb: make store_integer take an array_view
Change store_integer, store_signed_integer and store_unsigned_integer to accept an array_view. Add some backwards compatibility overloads to avoid changing all callers at once. Change-Id: Ibb1381228ab1cb65fc7e2e4b92cf9ab1047cdc03 Reviewed-By: John Baldwin <jhb@FreeBSD.org>
This commit is contained in:
@@ -159,12 +159,12 @@ extract_typed_address (const gdb_byte *buf, struct type *type)
|
||||
target-format integer at ADDR which is LEN bytes long. */
|
||||
template<typename T, typename>
|
||||
void
|
||||
store_integer (gdb_byte *addr, int len, enum bfd_endian byte_order,
|
||||
store_integer (gdb::array_view<gdb_byte> dst, enum bfd_endian byte_order,
|
||||
T val)
|
||||
{
|
||||
gdb_byte *p;
|
||||
gdb_byte *startaddr = addr;
|
||||
gdb_byte *endaddr = startaddr + len;
|
||||
gdb_byte *startaddr = dst.data ();
|
||||
gdb_byte *endaddr = startaddr + dst.size ();
|
||||
|
||||
/* Start at the least significant end of the integer, and work towards
|
||||
the most significant. */
|
||||
@@ -187,13 +187,11 @@ store_integer (gdb_byte *addr, int len, enum bfd_endian byte_order,
|
||||
}
|
||||
|
||||
/* Explicit instantiations. */
|
||||
template void store_integer (gdb_byte *addr, int len,
|
||||
enum bfd_endian byte_order,
|
||||
LONGEST val);
|
||||
template void store_integer (gdb::array_view<gdb_byte> dst,
|
||||
bfd_endian byte_order, LONGEST val);
|
||||
|
||||
template void store_integer (gdb_byte *addr, int len,
|
||||
enum bfd_endian byte_order,
|
||||
ULONGEST val);
|
||||
template void store_integer (gdb::array_view<gdb_byte> dst,
|
||||
bfd_endian byte_order, ULONGEST val);
|
||||
|
||||
/* Store the address ADDR as a pointer of type TYPE at BUF, in target
|
||||
form. */
|
||||
|
||||
Reference in New Issue
Block a user