diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 69d83854cf1..07ea07cdac6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2017-11-04 Tom Tromey + + * 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 * breakpoint.c diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c index a756834cba4..eade0461d5d 100644 --- a/gdb/sparc64-tdep.c +++ b/gdb/sparc64-tdep.c @@ -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 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