diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2002-06-07 14:44:21 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2002-06-07 14:44:21 +0000 |
commit | 0e08b8c2e485c355acc4818c1b04a81bc7e150be (patch) | |
tree | 56936dedd0aa214d20a2909c7ea88db6737e1438 /Src/text.c | |
parent | 37199039b2666815e42072ba934001fadb53b183 (diff) | |
download | zsh-0e08b8c2e485c355acc4818c1b04a81bc7e150be.tar.gz zsh-0e08b8c2e485c355acc4818c1b04a81bc7e150be.tar.xz zsh-0e08b8c2e485c355acc4818c1b04a81bc7e150be.zip |
17299: Use reference counts in Eprogs so as to be able to free them as soon
as finished with.
Diffstat (limited to 'Src/text.c')
-rw-r--r-- | Src/text.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Src/text.c b/Src/text.c index 44527666d..6cb734af2 100644 --- a/Src/text.c +++ b/Src/text.c @@ -117,6 +117,8 @@ getpermtext(Eprog prog, Wordcode c) if (!c) c = prog->prog; + useeprog(prog); /* mark as used */ + s.prog = prog; s.pc = c; s.strs = prog->strs; @@ -130,6 +132,7 @@ getpermtext(Eprog prog, Wordcode c) if (prog->len) gettext2(&s); *tptr = '\0'; + freeeprog(prog); /* mark as unused */ untokenize(tbuf); return tbuf; } @@ -147,6 +150,7 @@ getjobtext(Eprog prog, Wordcode c) if (!c) c = prog->prog; + useeprog(prog); /* mark as used */ s.prog = prog; s.pc = c; s.strs = prog->strs; @@ -159,6 +163,7 @@ getjobtext(Eprog prog, Wordcode c) tjob = 1; gettext2(&s); *tptr = '\0'; + freeeprog(prog); /* mark as unused */ untokenize(jbuf); return jbuf; } |