diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/remote.c | 21 |
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 |