5 -- countreferences and findallpaths |
5 -- countreferences and findallpaths |
6 -- |
6 -- |
7 -- Alexandra Barros - 2006.03.15 |
7 -- Alexandra Barros - 2006.03.15 |
8 ------------------------------------------------------------------------------- |
8 ------------------------------------------------------------------------------- |
9 |
9 |
10 module("gc", package.seeall) |
10 module("traverse", package.seeall) |
|
11 local traverse = _M; |
11 |
12 |
12 local List = {} |
13 local List = {} |
13 |
14 |
14 function List.new () |
15 function List.new () |
15 return {first = 0, last = -1} |
16 return {first = 0, last = -1} |
60 for i=1, #ignoreobjs do |
61 for i=1, #ignoreobjs do |
61 env.marked[ignoreobjs[i]] = true |
62 env.marked[ignoreobjs[i]] = true |
62 end |
63 end |
63 end |
64 end |
64 |
65 |
65 env.marked["gc"] = true |
66 env.marked["traverse"] = true |
66 env.marked[gc] = true |
67 env.marked[traverse] = true |
67 |
68 |
68 -- marks and inserts on the list |
69 -- marks and inserts on the list |
69 edge(env, nil, "_G", "isname", nil) |
70 edge(env, nil, "_G", "isname", nil) |
70 edge(env, nil, _G, "key", "_G") |
71 edge(env, nil, _G, "key", "_G") |
71 |
72 |