From c9f0b43fe46f473e4de3494f95b11ffb3d5a42a8 Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Mon, 23 Nov 2020 21:46:38 -0500 Subject: gmp-utils: Convert the read/write methods to using gdb::array_view This commit changes the interfaces of some of the methods declared in gmp-utils to take a gdb::array_view of gdb_byte instead of a (gdb_byte *, size) couple. This makes these methods' API probably more C++-idiomatic. * gmp-utils.h (gdb_mpz::read): Change buf and len parameters into one single gdb::array_view parameter. (gdb_mpz::write): Likewise. (gdb_mpq::read_fixed_point, gdb_mpq::write_fixed_point): Likewise. * gmp-utils.c (gdb_mpz::read): Change buf and len parameters into one single gdb::array_view parameter. Adjust implementation accordingly. (gdb_mpz::write): Likewise. (gdb_mpq::read_fixed_point, gdb_mpq::write_fixed_point): Likewise. * unittests/gmp-utils-selftests.c: Adapt following changes above. * valarith.c, valops.c, valprint.c, value.c: Likewise. --- gdb/unittests/gmp-utils-selftests.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'gdb/unittests') diff --git a/gdb/unittests/gmp-utils-selftests.c b/gdb/unittests/gmp-utils-selftests.c index 175ab3f..1365905 100644 --- a/gdb/unittests/gmp-utils-selftests.c +++ b/gdb/unittests/gmp-utils-selftests.c @@ -95,7 +95,7 @@ gdb_mpz_as_integer () template void -store_and_read_back (T val, int buf_len, enum bfd_endian byte_order, +store_and_read_back (T val, size_t buf_len, enum bfd_endian byte_order, gdb_mpz &expected, gdb_mpz &actual) { gdb_byte *buf; @@ -109,7 +109,7 @@ store_and_read_back (T val, int buf_len, enum bfd_endian byte_order, mpz_set (actual.val, expected.val); mpz_sub_ui (actual.val, actual.val, 500); - actual.read (buf, buf_len, byte_order, !std::is_signed::value); + actual.read ({buf, buf_len}, byte_order, !std::is_signed::value); } /* Test the gdb_mpz::read method over a reasonable range of values. @@ -227,14 +227,14 @@ gdb_mpz_read_min_max () template T -write_and_extract (T val, int buf_len, enum bfd_endian byte_order) +write_and_extract (T val, size_t buf_len, enum bfd_endian byte_order) { gdb_mpz v (val); SELF_CHECK (v.as_integer () == val); gdb_byte *buf = (gdb_byte *) alloca (buf_len); - v.write (buf, buf_len, byte_order, !std::is_signed::value); + v.write ({buf, buf_len}, byte_order, !std::is_signed::value); return extract_integer (buf, buf_len, byte_order); } @@ -329,11 +329,11 @@ read_fp_test (int unscaled, const gdb_mpq &scaling_factor, { /* For this kind of testing, we'll use a buffer the same size as our unscaled parameter. */ - const int len = sizeof (unscaled); + const size_t len = sizeof (unscaled); gdb_byte buf[len]; store_signed_integer (buf, len, byte_order, unscaled); - actual.read_fixed_point (buf, len, byte_order, 0, scaling_factor); + actual.read_fixed_point ({buf, len}, byte_order, 0, scaling_factor); mpq_set_si (expected.val, unscaled, 1); mpq_mul (expected.val, expected.val, scaling_factor.val); @@ -395,14 +395,14 @@ write_fp_test (int numerator, unsigned int denominator, This is really an arbitrary decision, as long as the buffer is long enough to hold the unscaled values that we'll be writing. */ - const int len = sizeof (LONGEST); + const size_t len = sizeof (LONGEST); gdb_byte buf[len]; memset (buf, 0, len); gdb_mpq v; mpq_set_si (v.val, numerator, denominator); mpq_canonicalize (v.val); - v.write_fixed_point (buf, len, byte_order, 0, scaling_factor); + v.write_fixed_point ({buf, len}, byte_order, 0, scaling_factor); return extract_unsigned_integer (buf, len, byte_order); } -- cgit v1.1