This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA 09/13] Use gdb::def_vector in ppc-linux-tdep.c
- From: Simon Marchi <simon dot marchi at polymtl dot ca>
- To: Tom Tromey <tom at tromey dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Thu, 02 Nov 2017 21:31:30 -0400
- Subject: Re: [RFA 09/13] Use gdb::def_vector in ppc-linux-tdep.c
- Authentication-results: sourceware.org; auth=none
- References: <20171102223612.3642-1-tom@tromey.com> <20171102223612.3642-10-tom@tromey.com>
On 2017-11-02 18:36, Tom Tromey wrote:
This removes a cleanup from ppc-linux-tdep.c, replacing it with
gdb::def_vector.
gdb/ChangeLog
2017-11-02 Tom Tromey <tom@tromey.com>
* ppc-linux-tdep.c (ppc_linux_get_syscall_number): Use
gdb::def_vector.
---
gdb/ChangeLog | 5 +++++
gdb/ppc-linux-tdep.c | 13 ++++---------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index 847908a6da..4d10a24ca9 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -725,26 +725,21 @@ ppc_linux_get_syscall_number (struct gdbarch
*gdbarch,
struct regcache *regcache = get_thread_regcache (ptid);
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- struct cleanup *cleanbuf;
- /* The content of a register */
- gdb_byte *buf;
/* The result */
LONGEST ret;
/* Make sure we're in a 32- or 64-bit machine */
gdb_assert (tdep->wordsize == 4 || tdep->wordsize == 8);
- buf = (gdb_byte *) xmalloc (tdep->wordsize * sizeof (gdb_byte));
-
- cleanbuf = make_cleanup (xfree, buf);
+ /* The content of a register */
+ gdb::def_vector<gdb_byte> buf (tdep->wordsize);
I would prefer if you used gdb::byte_vector, so it's consistent across
the codebase.
/* Getting the system call number from the register.
When dealing with PowerPC architecture, this information
is stored at 0th register. */
- regcache_cooked_read (regcache, tdep->ppc_gp0_regnum, buf);
+ regcache_cooked_read (regcache, tdep->ppc_gp0_regnum, buf.data ());
- ret = extract_signed_integer (buf, tdep->wordsize, byte_order);
- do_cleanups (cleanbuf);
+ ret = extract_signed_integer (buf.data (), tdep->wordsize,
byte_order);
return ret;
}
You can skip the ret variable.
Simon