Remove cleanup from xstormy16-tdep.c
authorTom Tromey <tom@tromey.com>
Thu, 28 Sep 2017 03:06:21 +0000 (21:06 -0600)
committerTom Tromey <tom@tromey.com>
Sat, 30 Sep 2017 02:46:44 +0000 (20:46 -0600)
This removes a cleanup from xstormy16-tdep.c, using gdb::byte_vector.

gdb/ChangeLog
2017-09-29  Tom Tromey  <tom@tromey.com>

* xstormy16-tdep.c (xstormy16_push_dummy_call): Use
gdb::byte_vector.

gdb/ChangeLog
gdb/xstormy16-tdep.c

index d2678d4..989c127 100644 (file)
@@ -1,5 +1,10 @@
 2017-09-29  Tom Tromey  <tom@tromey.com>
 
+       * xstormy16-tdep.c (xstormy16_push_dummy_call): Use
+       gdb::byte_vector.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
        * complaints.c (vcomplaint): Use std::string.
 
 2017-09-29  Tom Tromey  <tom@tromey.com>
index 40a6d98..bed4305 100644 (file)
@@ -35,6 +35,7 @@
 #include "doublest.h"
 #include "osabi.h"
 #include "objfiles.h"
+#include "common/byte-vector.h"
 
 enum gdb_regnum
 {
@@ -276,21 +277,17 @@ xstormy16_push_dummy_call (struct gdbarch *gdbarch,
      wordaligned.  */
   for (j = nargs - 1; j >= i; j--)
     {
-      gdb_byte *val;
-      struct cleanup *back_to;
       const gdb_byte *bytes = value_contents (args[j]);
 
       typelen = TYPE_LENGTH (value_enclosing_type (args[j]));
       slacklen = typelen & 1;
-      val = (gdb_byte *) xmalloc (typelen + slacklen);
-      back_to = make_cleanup (xfree, val);
-      memcpy (val, bytes, typelen);
-      memset (val + typelen, 0, slacklen);
+      gdb::byte_vector val (typelen + slacklen);
+      memcpy (val.data (), bytes, typelen);
+      memset (val.data () + typelen, 0, slacklen);
 
       /* Now write this data to the stack.  The stack grows upwards.  */
-      write_memory (stack_dest, val, typelen + slacklen);
+      write_memory (stack_dest, val.data (), typelen + slacklen);
       stack_dest += typelen + slacklen;
-      do_cleanups (back_to);
     }
 
   store_unsigned_integer (buf, xstormy16_pc_size, byte_order, bp_addr);