Remove cleanup from mt-tdep.c
authorTom Tromey <tom@tromey.com>
Thu, 28 Sep 2017 03:08:05 +0000 (21:08 -0600)
committerTom Tromey <tom@tromey.com>
Sat, 30 Sep 2017 02:46:44 +0000 (20:46 -0600)
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.

gdb/ChangeLog
gdb/mt-tdep.c

index 989c12718f5d0bb7f5ee5702486b177d992e32ee..2bbe205e7c72a49b05d1f9dd4261283ea63342cb 100644 (file)
@@ -1,3 +1,7 @@
+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
index e3ea322bacbca6aa42d06eb5f7e45c49ae807bf5..7992394ca29dc551b5d4db94d5c8276664fce433 100644 (file)
@@ -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,