gdb: trivial changes to use array_view
authorSimon Marchi <simon.marchi@polymtl.ca>
Tue, 26 Oct 2021 03:50:22 +0000 (23:50 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Fri, 3 Dec 2021 21:42:02 +0000 (16:42 -0500)
Change a few relatively obvious spots using value contents to propagate
the use array_view a bit more.

Change-Id: I5338a60986f06d5969fec803d04f8423c9288a15

gdb/frame.c
gdb/rust-lang.c
gdb/valarith.c
gdb/valops.c
gdb/value.c

index 7944d1edef8d5f1a97f40754ffd939e0313c5763..896d80d87bf16b913be6fc9281b59f3ec30e63e1 100644 (file)
@@ -1261,7 +1261,7 @@ frame_unwind_register_value (frame_info *next_frame, int regnum)
          else
            {
              int i;
-             const gdb_byte *buf = value_contents (value).data ();
+             gdb::array_view<const gdb_byte> buf = value_contents (value);
 
              fprintf_unfiltered (&debug_file, " bytes=");
              fprintf_unfiltered (&debug_file, "[");
index e5a404187bef18d62223e719ec9272fd125e93e5..9ab8fbe30c0e0970aacc83447367f34df55cb887 100644 (file)
@@ -1317,9 +1317,8 @@ eval_op_rust_struct_anon (struct type *expect_type, struct expression *exp,
 
       if (rust_enum_p (type))
        {
-         gdb::array_view<const gdb_byte> view (value_contents (lhs).data (),
-                                               TYPE_LENGTH (type));
-         type = resolve_dynamic_type (type, view, value_address (lhs));
+         type = resolve_dynamic_type (type, value_contents (lhs),
+                                      value_address (lhs));
 
          if (rust_empty_enum_p (type))
            error (_("Cannot access field %d of empty enum %s"),
@@ -1380,9 +1379,8 @@ eval_op_rust_structop (struct type *expect_type, struct expression *exp,
   struct type *type = value_type (lhs);
   if (type->code () == TYPE_CODE_STRUCT && rust_enum_p (type))
     {
-      gdb::array_view<const gdb_byte> view (value_contents (lhs).data (),
-                                           TYPE_LENGTH (type));
-      type = resolve_dynamic_type (type, view, value_address (lhs));
+      type = resolve_dynamic_type (type, value_contents (lhs),
+                                  value_address (lhs));
 
       if (rust_empty_enum_p (type))
        error (_("Cannot access field %s of empty enum %s"),
index 32898f9005b8d253a2dc0e1ccb9774623e0b0d0c..5ce931395cb29e1aefb813e301bd997fb2eaa548 100644 (file)
@@ -933,12 +933,10 @@ fixed_point_binop (struct value *arg1, struct value *arg2, enum exp_opcode op)
          type2 = type1;
        }
 
-      v1.read_fixed_point (gdb::make_array_view (value_contents (arg1).data (),
-                                                TYPE_LENGTH (type1)),
+      v1.read_fixed_point (value_contents (arg1),
                           type_byte_order (type1), type1->is_unsigned (),
                           type1->fixed_point_scaling_factor ());
-      v2.read_fixed_point (gdb::make_array_view (value_contents (arg2).data (),
-                                                TYPE_LENGTH (type2)),
+      v2.read_fixed_point (value_contents (arg2),
                           type_byte_order (type2), type2->is_unsigned (),
                           type2->fixed_point_scaling_factor ());
     }
@@ -948,8 +946,7 @@ fixed_point_binop (struct value *arg1, struct value *arg2, enum exp_opcode op)
       value *fp_val = allocate_value (type1);
 
       fp.write_fixed_point
-       (gdb::make_array_view (value_contents_raw (fp_val).data (),
-                              TYPE_LENGTH (type1)),
+       (value_contents_raw (fp_val),
         type_byte_order (type1),
         type1->is_unsigned (),
         type1->fixed_point_scaling_factor ());
index 779ca93edd7df016cf9e93c09e1e74e485713b35..e0214c5d2f484150b9b8381add3aeb535109fec8 100644 (file)
@@ -351,9 +351,8 @@ value_to_gdb_mpq (struct value *value)
                  || is_fixed_point_type (type));
 
       gdb_mpz vz;
-      vz.read (gdb::make_array_view (value_contents (value).data (),
-                                    TYPE_LENGTH (type)),
-              type_byte_order (type), type->is_unsigned ());
+      vz.read (value_contents (value), type_byte_order (type),
+              type->is_unsigned ());
       mpq_set_z (result.val, vz.val);
 
       if (is_fixed_point_type (type))
@@ -392,8 +391,7 @@ value_cast_to_fixed_point (struct type *to_type, struct value *from_val)
   /* Finally, create the result value, and pack the unscaled value
      in it.  */
   struct value *result = allocate_value (to_type);
-  unscaled.write (gdb::make_array_view (value_contents_raw (result).data (),
-                                       TYPE_LENGTH (to_type)),
+  unscaled.write (value_contents_raw (result),
                  type_byte_order (to_type),
                  to_type->is_unsigned ());
 
@@ -554,11 +552,10 @@ value_cast (struct type *type, struct value *arg2)
        {
          gdb_mpq fp_val;
 
-         fp_val.read_fixed_point
-           (gdb::make_array_view (value_contents (arg2).data (),
-                                  TYPE_LENGTH (type2)),
-            type_byte_order (type2), type2->is_unsigned (),
-            type2->fixed_point_scaling_factor ());
+         fp_val.read_fixed_point (value_contents (arg2),
+                                  type_byte_order (type2),
+                                  type2->is_unsigned (),
+                                  type2->fixed_point_scaling_factor ());
 
          struct value *v = allocate_value (to_type);
          target_float_from_host_double (value_contents_raw (v).data (),
@@ -1255,14 +1252,9 @@ value_assign (struct value *toval, struct value *fromval)
                                           value_contents (fromval).data ());
              }
            else
-             {
-               gdb::array_view<const gdb_byte> contents
-                 = gdb::make_array_view (value_contents (fromval).data (),
-                                         TYPE_LENGTH (type));
-               put_frame_register_bytes (frame, value_reg,
-                                         value_offset (toval),
-                                         contents);
-             }
+             put_frame_register_bytes (frame, value_reg,
+                                       value_offset (toval),
+                                       value_contents (fromval));
          }
 
        gdb::observers::register_changed.notify (frame, value_reg);
index 4e66329e82c5fa193859a1a668b00796a7d5e9ff..7d939ab11dbf2d1020d0f470aef6a44e527990cb 100644 (file)
@@ -4011,7 +4011,7 @@ value_fetch_lazy_register (struct value *val)
       else
        {
          int i;
-         const gdb_byte *buf = value_contents (new_val).data ();
+         gdb::array_view<const gdb_byte> buf = value_contents (new_val);
 
          if (VALUE_LVAL (new_val) == lval_register)
            fprintf_unfiltered (&debug_file, " register=%d",