more precise freeing the wordlist, depending on exit point
This commit is contained in:
parent
bc52389a09
commit
458411b2e1
|
|
@ -275,10 +275,15 @@ ft_cktcoms(bool terse)
|
|||
while (coms) {
|
||||
wordlist* freecom;
|
||||
freecom = command = cp_lexer(coms->wl_word);
|
||||
if (!command || command->wl_word == (char *) NULL) {
|
||||
if (!command) {
|
||||
/* Line not converted to a wordlist */
|
||||
goto bad;
|
||||
}
|
||||
if (command->wl_word == (char*)NULL) {
|
||||
/* Line not converted to a wordlist */
|
||||
wl_free(freecom);
|
||||
goto bad;
|
||||
}
|
||||
if (eq(command->wl_word, ".width")) {
|
||||
do
|
||||
command = command->wl_next;
|
||||
|
|
@ -288,6 +293,7 @@ ft_cktcoms(bool terse)
|
|||
if (!s || !s[1]) {
|
||||
fprintf(cp_err, "Error: bad line %s\n", coms->wl_word);
|
||||
coms = coms->wl_next;
|
||||
wl_free(freecom);
|
||||
continue;
|
||||
}
|
||||
i = atoi(++s);
|
||||
|
|
@ -302,6 +308,7 @@ ft_cktcoms(bool terse)
|
|||
if (!command) {
|
||||
fprintf(cp_err, "Error: bad line %s\n", coms->wl_word);
|
||||
coms = coms->wl_next;
|
||||
wl_free(freecom);
|
||||
continue;
|
||||
}
|
||||
plottype = command->wl_word;
|
||||
|
|
@ -330,6 +337,7 @@ ft_cktcoms(bool terse)
|
|||
fprintf(cp_err, "Error: bad line %s\n",
|
||||
coms->wl_word);
|
||||
coms = coms->wl_next;
|
||||
wl_free(freecom);
|
||||
continue;
|
||||
}
|
||||
plottype = command->wl_word;
|
||||
|
|
@ -364,9 +372,9 @@ ft_cktcoms(bool terse)
|
|||
}
|
||||
} else if (!eq(command->wl_word, ".save") &&
|
||||
!eq(command->wl_word, ".op") &&
|
||||
// !eq(command->wl_word, ".measure") &&
|
||||
!ciprefix(".meas", command->wl_word) &&
|
||||
!eq(command->wl_word, ".tf")) {
|
||||
wl_free(freecom);
|
||||
goto bad;
|
||||
}
|
||||
coms = coms->wl_next; /* go to next line */
|
||||
|
|
|
|||
Loading…
Reference in New Issue