Use gdb::def_vector in sparc64-tdep.c
authorTom Tromey <tom@tromey.com>
Wed, 1 Nov 2017 22:37:27 +0000 (16:37 -0600)
committerTom Tromey <tom@tromey.com>
Sat, 4 Nov 2017 16:27:17 +0000 (10:27 -0600)
This removes a cleanup from sparc64-tdep.c, replacing it with
gdb::def_vector.

gdb/ChangeLog
2017-11-04  Tom Tromey  <tom@tromey.com>

* sparc64-tdep.c (do_examine): Use gdb::def_vector.
(adi_read_versions): Change "tags" to "gdb_byte *".
(adi_print_versions): Likewise.

gdb/ChangeLog
gdb/sparc64-tdep.c

index 69d83854cf1864a80690adbb0655fba6b502f3c4..07ea07cdac6f4358f9f110d27701dea6676fa0f6 100644 (file)
@@ -1,3 +1,9 @@
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+       * sparc64-tdep.c (do_examine): Use gdb::def_vector.
+       (adi_read_versions): Change "tags" to "gdb_byte *".
+       (adi_print_versions): Likewise.
+
 2017-11-04  Tom Tromey  <tom@tromey.com>
 
        * breakpoint.c
index a756834cba45e1e64e8ad02c6d060b81f7f6822e..eade0461d5d4fe75fddbcd5f6401824c366b2f80 100644 (file)
@@ -341,7 +341,7 @@ adi_is_addr_mapped (CORE_ADDR vaddr, size_t cnt)
    for "SIZE" number of bytes.  */
 
 static int
-adi_read_versions (CORE_ADDR vaddr, size_t size, unsigned char *tags)
+adi_read_versions (CORE_ADDR vaddr, size_t size, gdb_byte *tags)
 {
   int fd = adi_tag_fd ();
   if (fd == -1)
@@ -383,7 +383,7 @@ adi_write_versions (CORE_ADDR vaddr, size_t size, unsigned char *tags)
    at "VADDR" with number of "CNT".  */
 
 static void
-adi_print_versions (CORE_ADDR vaddr, size_t cnt, unsigned char *tags)
+adi_print_versions (CORE_ADDR vaddr, size_t cnt, gdb_byte *tags)
 {
   int v_idx = 0;
   const int maxelts = 8;  /* # of elements per line */
@@ -415,21 +415,17 @@ static void
 do_examine (CORE_ADDR start, int bcnt)
 {
   CORE_ADDR vaddr = adi_normalize_address (start);
-  struct cleanup *cleanup;
 
   CORE_ADDR vstart = adi_align_address (vaddr);
   int cnt = adi_convert_byte_count (vaddr, bcnt, vstart);
-  unsigned char *buf = (unsigned char *) xmalloc (cnt);
-  cleanup = make_cleanup (xfree, buf);
-  int read_cnt = adi_read_versions (vstart, cnt, buf);
+  gdb::def_vector<gdb_byte> buf (cnt);
+  int read_cnt = adi_read_versions (vstart, cnt, buf.data ());
   if (read_cnt == -1)
     error (_("No ADI information"));
   else if (read_cnt < cnt)
     error(_("No ADI information at %s"), paddress (target_gdbarch (), vaddr));
 
-  adi_print_versions (vstart, cnt, buf);
-
-  do_cleanups (cleanup);
+  adi_print_versions (vstart, cnt, buf.data ());
 }
 
 static void