about summary refs log tree commit diff
path: root/Src/text.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2002-06-07 14:44:21 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2002-06-07 14:44:21 +0000
commit0e08b8c2e485c355acc4818c1b04a81bc7e150be (patch)
tree56936dedd0aa214d20a2909c7ea88db6737e1438 /Src/text.c
parent37199039b2666815e42072ba934001fadb53b183 (diff)
downloadzsh-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.c5
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;
 }