Introduce gdb::byte_vector, add allocator that default-initializes
[deliverable/binutils-gdb.git] / gdb / mi / mi-main.c
index 38d737f49f35953c7f5a9c957e918606baac63e3..53289bb7e975a2be796bb05ed664542a75d2c822 100644 (file)
@@ -55,6 +55,7 @@
 #include "gdbcmd.h"
 #include "observer.h"
 #include "common/gdb_optional.h"
+#include "common/byte-vector.h"
 
 #include <ctype.h>
 #include "run-time-clock.h"
@@ -1125,17 +1126,8 @@ register_changed_p (int regnum, struct regcache *prev_regs,
   gdb_assert (prev_value != NULL);
   gdb_assert (this_value != NULL);
 
-  if (value_optimized_out (prev_value) != value_optimized_out (this_value)
-      || value_entirely_available (prev_value)
-        != value_entirely_available (this_value))
-    ret = 1;
-  if (value_optimized_out (prev_value)
-      || !value_entirely_available (prev_value))
-    ret = 0;
-  else
-    ret = memcmp (value_contents_all (prev_value),
-                 value_contents_all (this_value),
-                 register_size (gdbarch, regnum)) != 0;
+  ret = value_contents_eq (prev_value, 0, this_value, 0,
+                          register_size (gdbarch, regnum)) == 0;
 
   release_value (prev_value);
   release_value (this_value);
@@ -1475,12 +1467,12 @@ mi_cmd_data_read_memory (const char *command, char **argv, int argc)
   /* Create a buffer and read it in.  */
   total_bytes = word_size * nr_rows * nr_cols;
 
-  std::unique_ptr<gdb_byte[]> mbuf (new gdb_byte[total_bytes]);
+  gdb::byte_vector mbuf (total_bytes);
 
   /* Dispatch memory reads to the topmost target, not the flattened
      current_target.  */
   nr_bytes = target_read (current_target.beneath,
-                         TARGET_OBJECT_MEMORY, NULL, mbuf.get (),
+                         TARGET_OBJECT_MEMORY, NULL, mbuf.data (),
                          addr, total_bytes);
   if (nr_bytes <= 0)
     error (_("Unable to read memory."));
This page took 0.027403 seconds and 4 git commands to generate.