aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/remote.c21
2 files changed, 14 insertions, 12 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 89dba90..582cc15 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
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.
* gdbarch.h, gdbarch.c: Regenerate.
* remote.c (remote_query_supported): Remove use of
diff --git a/gdb/remote.c b/gdb/remote.c
index 3da591f..40e1460 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -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