summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-25 06:52:43 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-25 06:52:43 +0000
commitba2d46829afada0ecc878df16b04078b13c6cfd9 (patch)
treea7403d95e2a7f658160e623eec8568c1969b5165 /gc.c
parent6bab1e5abd81d57fe1046a7acc7f699ab6ee3190 (diff)
reserved words & etc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@91 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gc.c b/gc.c
index 36cb6d1d5d..4dbc59475b 100644
--- a/gc.c
+++ b/gc.c
@@ -988,10 +988,18 @@ gc_call_finalizer_at_exit()
RVALUE *p, *pend;
int i;
+ /* run finalizers */
for (i = 0; i < heaps_used; i++) {
p = heaps[i]; pend = p + HEAP_SLOTS;
while (p < pend) {
run_final(p);
+ p++;
+ }
+ }
+ /* run data object's finaliers */
+ for (i = 0; i < heaps_used; i++) {
+ p = heaps[i]; pend = p + HEAP_SLOTS;
+ while (p < pend) {
if (BUILTIN_TYPE(p) == T_DATA &&
DATA_PTR(p) &&
RANY(p)->as.data.dfree)