commit c130b69ba600e827b577e990f24b8fad297aae12
parent 1d1fc8e4351542be18c58e86009059f974f39db9
Author: Alexander Burger <abu@software-lab.de>
Date: Tue, 19 Jul 2011 09:50:47 +0200
Bug in coroutine garbage collection
Diffstat:
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src64/gc.l b/src64/gc.l
@@ -1,4 +1,4 @@
-# 16feb11abu
+# 19jul11abu
# (c) Software Lab. Alexander Burger
# Mark data
@@ -132,13 +132,13 @@
sub Y (StkSize) # Next segment
shr C 1 # In use?
if c # Yes
+ push C
null (Y -II) # Active?
if z # Yes
ld E (Y -I) # Mark 'tag'
call markE
else
push Y
- push C
ld Y ((Y -II)) # Else get saved L
do
null Y # End of stack?
@@ -153,9 +153,9 @@
loop
ld Y (Y) # Next frame
loop
- pop C
pop Y
end
+ pop C
continue T
end
until z