Browse Source

inpcom.c, abstraction, free_function()

pre-master-46
rlar 13 years ago
parent
commit
5e00cbb3dd
  1. 25
      src/frontend/inpcom.c

25
src/frontend/inpcom.c

@ -2759,6 +2759,19 @@ find_function(char *name)
}
static void
free_function(struct function *fcn)
{
int i;
tfree(fcn->name);
tfree(fcn->macro);
for (i = 0; i < fcn->num_parameters; i++)
tfree(fcn->params[i]);
}
static void
inp_get_func_from_line(char *line)
{
@ -3068,7 +3081,7 @@ static void
inp_expand_macros_in_deck(struct line *deck)
{
struct line *c = deck;
int prev_num_functions = 0, i, j;
int prev_num_functions = 0, i;
while (c != NULL) {
if (*c->li_line == '*') {
@ -3083,13 +3096,9 @@ inp_expand_macros_in_deck(struct line *deck)
}
if (ciprefix(".ends", c->li_line)) {
if (prev_num_functions != num_functions) {
for (i = prev_num_functions; i < num_functions; i++) {
tfree(functions[i].name);
tfree(functions[i].macro);
for (j = 0; j < functions[i].num_parameters; j++)
tfree(functions[i].params[j]);
num_functions = prev_num_functions;
}
for (i = prev_num_functions; i < num_functions; i++)
free_function(& functions[i]);
num_functions = prev_num_functions;
}
}

Loading…
Cancel
Save