summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-03-05 06:37:50 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-03-05 06:37:50 +0000
commitf70ffbee2120cbbb8c6b0a15dfc693a69ac0d7d4 (patch)
tree2070b335aaddd33fd915c14557c82ba06ac86df9 /gc.c
parent369124b0ec6aa0d58ea628339713444c559bfa5f (diff)
block arg etc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gc.c b/gc.c
index 4dbc59475b..8076d8f7ee 100644
--- a/gc.c
+++ b/gc.c
@@ -261,6 +261,9 @@ data_object_alloc(klass, datap, dmark, dfree)
data->dfree = dfree;
data->dmark = dmark;
+ /* turn on premitive flag for the class */
+ FL_SET(klass, FL_PRIMITIVE);
+
return (VALUE)data;
}
@@ -370,7 +373,7 @@ gc_mark(ptr)
if (FIXNUM_P(obj)) return; /* fixnum not marked */
if (rb_special_const_p((VALUE)obj)) return; /* special const not marked */
if (obj->as.basic.flags == 0) return; /* free cell */
- if (obj->as.basic.flags & FL_MARK) return; /* marked */
+ if (obj->as.basic.flags & FL_MARK) return; /* already marked */
obj->as.basic.flags |= FL_MARK;