* remote.c (remote_query_supported_append): Use reconcat.
authorPedro Alves <palves@redhat.com>
Fri, 7 May 2010 14:01:55 +0000 (14:01 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 7 May 2010 14:01:55 +0000 (14:01 +0000)
(remote_query_supported): Install a cleanup.  Use reconcat.

gdb/ChangeLog
gdb/remote.c

index 89dba909e44cada3b09c8872fbecfe7ff3690903..582cc1542e9053ab8eba0b3ab55a93452a5e8177 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-07  Pedro Alves  <pedro@codesourcery.com>
+
+       * remote.c (remote_query_supported_append): Use reconcat.
+       (remote_query_supported): Install a cleanup.  Use reconcat.
+
 2010-05-07  Pedro Alves  <pedro@codesourcery.com>
 
        * gdbarch.sh (qsupported): Delete.
index 3da591f87b58364e3bb2394f7c847f51373f7f74..40e1460473ef789370f7b789b19a2a9bc5ff4c43 100644 (file)
@@ -3523,9 +3523,9 @@ register_remote_support_xml (const char *xml)
       while ((p = strtok (NULL, ",")) != NULL);
       xfree (copy);
 
-      p = concat (remote_support_xml, ",", xml, (char *) NULL);
-      xfree (remote_support_xml);
-      remote_support_xml = p;
+      remote_support_xml = reconcat (remote_support_xml,
+                                    remote_support_xml, ",", xml,
+                                    (char *) NULL);
     }
 #endif
 }
@@ -3534,11 +3534,7 @@ static char *
 remote_query_supported_append (char *msg, const char *append)
 {
   if (msg)
-    {
-      char *p = concat (msg, ";", append, (char *) NULL);
-      xfree (msg);
-      return p;
-    }
+    return reconcat (msg, msg, ";", append, (char *) NULL);
   else
     return xstrdup (append);
 }
@@ -3562,6 +3558,7 @@ remote_query_supported (void)
   if (remote_protocol_packets[PACKET_qSupported].support != PACKET_DISABLE)
     {
       char *q = NULL;
+      struct cleanup *old_chain = make_cleanup (free_current_contents, &q);
 
       if (rs->extended)
        q = remote_query_supported_append (q, "multiprocess+");
@@ -3571,14 +3568,14 @@ remote_query_supported (void)
 
       if (q)
        {
-         char *p = concat ("qSupported:", q, (char *) NULL);
-         xfree (q);
-         putpkt (p);
-         xfree (p);
+         q = reconcat (q, "qSupported:", q, (char *) NULL);
+         putpkt (q);
        }
       else
        putpkt ("qSupported");
 
+      do_cleanups (old_chain);
+
       getpkt (&rs->buf, &rs->buf_size, 0);
 
       /* If an error occured, warn, but do not return - just reset the