aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>1999-01-22 16:08:03 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>1999-01-22 16:08:03 -0200
commit67b44c9493c7eb1882a9a059b8b39ed350b5b635 (patch)
tree59679c801011dc35bd584423ac747126a332c2d2
parent758a38164481891acb1dd07003c1726554034d67 (diff)
downloadlua-67b44c9493c7eb1882a9a059b8b39ed350b5b635.tar.gz
lua-67b44c9493c7eb1882a9a059b8b39ed350b5b635.tar.bz2
lua-67b44c9493c7eb1882a9a059b8b39ed350b5b635.zip
local names are all in the constant pool, so they do not need to be
marked in GC.
-rw-r--r--lgc.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/lgc.c b/lgc.c
index dafcfda1..ba75ef26 100644
--- a/lgc.c
+++ b/lgc.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lgc.c,v 1.18 1998/03/09 21:49:52 roberto Exp roberto $ 2** $Id: lgc.c,v 1.19 1998/07/12 16:10:38 roberto Exp roberto $
3** Garbage Collector 3** Garbage Collector
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -163,20 +163,13 @@ static void strmark (TaggedString *s)
163} 163}
164 164
165 165
166static void protomark (TProtoFunc *f) 166static void protomark (TProtoFunc *f) {
167{
168 if (!f->head.marked) { 167 if (!f->head.marked) {
169 LocVar *v = f->locvars;
170 int i; 168 int i;
171 f->head.marked = 1; 169 f->head.marked = 1;
172 strmark(f->fileName); 170 strmark(f->fileName);
173 for (i=0; i<f->nconsts; i++) 171 for (i=0; i<f->nconsts; i++)
174 markobject(&f->consts[i]); 172 markobject(&f->consts[i]);
175 if (v) {
176 for (; v->line != -1; v++)
177 if (v->varname)
178 strmark(v->varname);
179 }
180 } 173 }
181} 174}
182 175