Remove cleanup from tilegx-tdep.c
authorTom Tromey <tom@tromey.com>
Thu, 28 Sep 2017 02:39:32 +0000 (20:39 -0600)
committerTom Tromey <tom@tromey.com>
Sat, 30 Sep 2017 02:46:43 +0000 (20:46 -0600)
This removes a cleanup from tilegx-tdep.c, by using gdb::byte_vector.

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

* tilegx-tdep.c (tilegx_push_dummy_call): Use gdb::byte_vector.

gdb/ChangeLog
gdb/tilegx-tdep.c

index 0e76e7f559ded42a3f3f6065d6257c70e9db7073..23384613ee6b245d45435c5cac3e739817edd866 100644 (file)
@@ -1,3 +1,7 @@
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+       * tilegx-tdep.c (tilegx_push_dummy_call): Use gdb::byte_vector.
+
 2017-09-29  Tom Tromey  <tom@tromey.com>
 
        * utils.c (vfprintf_maybe_filtered): Use std::string.
index b26622d05dbdaac5497b0889e711b721589e930b..5291e10f60b85f6b20b842efe4c49089a2f9ebd4 100644 (file)
@@ -42,6 +42,7 @@
 #include "tilegx-tdep.h"
 #include "opcode/tilegx.h"
 #include <algorithm>
+#include "common/byte-vector.h"
 
 struct tilegx_frame_cache
 {
@@ -328,21 +329,17 @@ tilegx_push_dummy_call (struct gdbarch *gdbarch,
      the stack, word aligned.  */
   for (j = nargs - 1; j >= i; j--)
     {
-      gdb_byte *val;
-      struct cleanup *back_to;
       const gdb_byte *contents = value_contents (args[j]);
 
       typelen = TYPE_LENGTH (value_enclosing_type (args[j]));
       slacklen = align_up (typelen, 8) - typelen;
-      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 data to the stack.  The stack grows downwards.  */
       stack_dest -= typelen + slacklen;
-      write_memory (stack_dest, val, typelen + slacklen);
-      do_cleanups (back_to);
+      write_memory (stack_dest, val.data (), typelen + slacklen);
     }
 
   /* Add 16 bytes for linkage space to the stack.  */