subckt.c, doit(), cleanup, local variables
This commit is contained in:
parent
7d44aa9564
commit
3393d68818
|
|
@ -549,7 +549,6 @@ doit(struct line *deck, wordlist *modnames) {
|
||||||
|
|
||||||
char *tofree, *tofree2, *s, *t;
|
char *tofree, *tofree2, *s, *t;
|
||||||
char *scname;
|
char *scname;
|
||||||
struct line *su_deck;
|
|
||||||
|
|
||||||
gotone = TRUE;
|
gotone = TRUE;
|
||||||
t = tofree = s = copy(c->li_line); /* s & t hold copy of component line */
|
t = tofree = s = copy(c->li_line); /* s & t hold copy of component line */
|
||||||
|
|
@ -589,19 +588,15 @@ doit(struct line *deck, wordlist *modnames) {
|
||||||
/* If no .subckt is found, don't complain -- this might be an
|
/* If no .subckt is found, don't complain -- this might be an
|
||||||
* instance of a subckt that is defined above at higher level.
|
* instance of a subckt that is defined above at higher level.
|
||||||
*/
|
*/
|
||||||
if (!sss) {
|
if (sss) {
|
||||||
tfree(tofree);
|
|
||||||
tfree(tofree2);
|
struct line *su_deck = inp_deckcopy(sss->su_def);
|
||||||
continue;
|
struct line *rest_of_c = c->li_next;
|
||||||
}
|
|
||||||
|
|
||||||
/* Now we have to replace this line with the
|
/* Now we have to replace this line with the
|
||||||
* macro definition.
|
* macro definition.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* make su_deck point to a copy of the .subckt definition */
|
|
||||||
su_deck = inp_deckcopy(sss->su_def);
|
|
||||||
|
|
||||||
/* Change the names of .models found in .subckts . . . */
|
/* Change the names of .models found in .subckts . . . */
|
||||||
/* prepend the translated model names to the list `modnames' */
|
/* prepend the translated model names to the list `modnames' */
|
||||||
modnames = modtranslate(su_deck, scname, modnames);
|
modnames = modtranslate(su_deck, scname, modnames);
|
||||||
|
|
@ -615,8 +610,6 @@ doit(struct line *deck, wordlist *modnames) {
|
||||||
error = 1;
|
error = 1;
|
||||||
|
|
||||||
/* Now splice the decks together. */
|
/* Now splice the decks together. */
|
||||||
{
|
|
||||||
struct line *rest_of_c = c->li_next;
|
|
||||||
if (use_numparams == FALSE) {
|
if (use_numparams == FALSE) {
|
||||||
line_free_x(c, FALSE); /* drop the invocation */
|
line_free_x(c, FALSE); /* drop the invocation */
|
||||||
if (prev_of_c)
|
if (prev_of_c)
|
||||||
|
|
@ -631,7 +624,7 @@ doit(struct line *deck, wordlist *modnames) {
|
||||||
while (c->li_next)
|
while (c->li_next)
|
||||||
c = c->li_next;
|
c = c->li_next;
|
||||||
c->li_next = rest_of_c;
|
c->li_next = rest_of_c;
|
||||||
}
|
}
|
||||||
tfree(tofree);
|
tfree(tofree);
|
||||||
tfree(tofree2);
|
tfree(tofree2);
|
||||||
} /* if (ciprefix(invoke, c->li_line)) . . . */
|
} /* if (ciprefix(invoke, c->li_line)) . . . */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue