This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Remove cleanup from mt-tdep.c
- From: Tom Tromey <tromey at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 30 Sep 2017 02:59:43 -0000
- Subject: [binutils-gdb] Remove cleanup from mt-tdep.c
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=42518ba746b5b6cb7c169a55430e73551be345f5
commit 42518ba746b5b6cb7c169a55430e73551be345f5
Author: Tom Tromey <tom@tromey.com>
Date: Wed Sep 27 21:08:05 2017 -0600
Remove cleanup from mt-tdep.c
Remove a cleanup from mt-tdep.c, using gdb::byte_vector.
gdb/ChangeLog
2017-09-29 Tom Tromey <tom@tromey.com>
* mt-tdep.c (mt_push_dummy_call): Use gdb::byte_vector.
Diff:
---
gdb/ChangeLog | 4 ++++
gdb/mt-tdep.c | 13 +++++--------
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 989c127..2bbe205 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2017-09-29 Tom Tromey <tom@tromey.com>
+ * mt-tdep.c (mt_push_dummy_call): Use gdb::byte_vector.
+
+2017-09-29 Tom Tromey <tom@tromey.com>
+
* xstormy16-tdep.c (xstormy16_push_dummy_call): Use
gdb::byte_vector.
diff --git a/gdb/mt-tdep.c b/gdb/mt-tdep.c
index e3ea322..7992394 100644
--- a/gdb/mt-tdep.c
+++ b/gdb/mt-tdep.c
@@ -36,6 +36,7 @@
#include "infcall.h"
#include "language.h"
#include "valprint.h"
+#include "common/byte-vector.h"
enum mt_arch_constants
{
@@ -849,21 +850,17 @@ mt_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
/* Next, the rest of the arguments go onto the stack, in reverse order. */
for (j = nargs - 1; j >= i; j--)
{
- gdb_byte *val;
- struct cleanup *back_to;
const gdb_byte *contents = value_contents (args[j]);
/* Right-justify the value in an aligned-length buffer. */
typelen = TYPE_LENGTH (value_type (args[j]));
slacklen = (wordsize - (typelen % wordsize)) % wordsize;
- val = (gdb_byte *) xmalloc (typelen + slacklen);
- back_to = make_cleanup (xfree, val);
- memcpy (val, contents, typelen);
- memset (val + typelen, 0, slacklen);
+ gdb::byte_vector val (typelen + slacklen);
+ memcpy (val.data (), contents, typelen);
+ memset (val.data () + typelen, 0, slacklen);
/* Now write this data to the stack. */
stack_dest -= typelen + slacklen;
- write_memory (stack_dest, val, typelen + slacklen);
- do_cleanups (back_to);
+ write_memory (stack_dest, val.data (), typelen + slacklen);
}
/* Finally, if a param needs to be split between registers and stack,