* macro.c (get_any_string): Free malloced br_buf.
(do_formals): Free 'formal'.
This commit is contained in:
parent
f956bf33e2
commit
4ac14836c9
@ -1,6 +1,8 @@
|
|||||||
2011-03-30 Michael Snyder <msnyder@vmware.com>
|
2011-03-30 Michael Snyder <msnyder@vmware.com>
|
||||||
|
|
||||||
* obj-elf.c (obj_elf_section): Free malloced name.
|
* obj-elf.c (obj_elf_section): Free malloced name.
|
||||||
|
* macro.c (get_any_string): Free malloced br_buf.
|
||||||
|
(do_formals): Free 'formal'.
|
||||||
|
|
||||||
2011-03-30 Tristan Gingold <gingold@adacore.com>
|
2011-03-30 Tristan Gingold <gingold@adacore.com>
|
||||||
|
|
||||||
|
20
gas/macro.c
20
gas/macro.c
@ -1,6 +1,6 @@
|
|||||||
/* macro.c - macro support for gas
|
/* macro.c - macro support for gas
|
||||||
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
||||||
2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
2004, 2005, 2006, 2007, 2008, 2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Written by Steve and Judy Chamberlain of Cygnus Support,
|
Written by Steve and Judy Chamberlain of Cygnus Support,
|
||||||
sac@cygnus.com
|
sac@cygnus.com
|
||||||
@ -119,7 +119,7 @@ buffer_and_nest (const char *from, const char *to, sb *ptr,
|
|||||||
|
|
||||||
int more = get_line (ptr);
|
int more = get_line (ptr);
|
||||||
|
|
||||||
if (to_len == 4 && strcasecmp(to, "ENDR") == 0)
|
if (to_len == 4 && strcasecmp (to, "ENDR") == 0)
|
||||||
{
|
{
|
||||||
from = NULL;
|
from = NULL;
|
||||||
from_len = 0;
|
from_len = 0;
|
||||||
@ -384,7 +384,7 @@ get_any_string (int idx, sb *in, sb *out)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char *br_buf = (char *) xmalloc(1);
|
char *br_buf = (char *) xmalloc (1);
|
||||||
char *in_br = br_buf;
|
char *in_br = br_buf;
|
||||||
|
|
||||||
*in_br = '\0';
|
*in_br = '\0';
|
||||||
@ -407,7 +407,10 @@ get_any_string (int idx, sb *in, sb *out)
|
|||||||
&& in->ptr[idx] != tchar)
|
&& in->ptr[idx] != tchar)
|
||||||
sb_add_char (out, in->ptr[idx++]);
|
sb_add_char (out, in->ptr[idx++]);
|
||||||
if (idx == in->len)
|
if (idx == in->len)
|
||||||
return idx;
|
{
|
||||||
|
free (br_buf);
|
||||||
|
return idx;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case '(':
|
case '(':
|
||||||
case '[':
|
case '[':
|
||||||
@ -415,9 +418,9 @@ get_any_string (int idx, sb *in, sb *out)
|
|||||||
--in_br;
|
--in_br;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
br_buf = (char *) xmalloc(strlen(in_br) + 2);
|
br_buf = (char *) xmalloc (strlen (in_br) + 2);
|
||||||
strcpy(br_buf + 1, in_br);
|
strcpy (br_buf + 1, in_br);
|
||||||
free(in_br);
|
free (in_br);
|
||||||
in_br = br_buf;
|
in_br = br_buf;
|
||||||
}
|
}
|
||||||
*in_br = tchar;
|
*in_br = tchar;
|
||||||
@ -434,7 +437,7 @@ get_any_string (int idx, sb *in, sb *out)
|
|||||||
sb_add_char (out, tchar);
|
sb_add_char (out, tchar);
|
||||||
++idx;
|
++idx;
|
||||||
}
|
}
|
||||||
free(br_buf);
|
free (br_buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -488,6 +491,7 @@ do_formals (macro_entry *macro, int idx, sb *in)
|
|||||||
{
|
{
|
||||||
if (macro->formal_count)
|
if (macro->formal_count)
|
||||||
--idx;
|
--idx;
|
||||||
|
del_formal (formal); /* 'formal' goes out of scope. */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
idx = sb_skip_white (idx, in);
|
idx = sb_skip_white (idx, in);
|
||||||
|
Loading…
Reference in New Issue
Block a user