definition[idx - 1] = '\0';
(void) define_variable (name, namelen, definition, origin, 1);
free (definition);
+ freebuffer (&lb);
return lineno;
}
else
/* No `endef'!! */
makefile_fatal (filename, lineno, "missing `endef', unterminated `define'");
+
+ /* NOTREACHED */
return 0;
}
\f
/* Defining .SUFFIXES with no dependencies
clears out the list of suffixes. */
if (f == suffix_file && this == 0)
- f->deps = 0;
+ {
+ d = f->deps;
+ while (d != 0)
+ {
+ struct dep *nextd = d->next;
+ free (d->name);
+ free (d);
+ d = nextd;
+ }
+ f->deps = 0;
+ }
else if (f->deps != 0)
{
d = f->deps;
/* Free name if not needed further. */
if (f != 0 && name != f->name
- && !(f->name == name + 2 && name[0] == '.' && name[1] == '/'))
+ && (name < f->name || name > f->name + strlen (f->name)))
{
free (name);
name = f->name;
new = elt;
}
globfree (&gl);
+ free (old->name);
+ free (old);
break;
}
default:
old->next = new;
new = old;
+ break;
}
}