summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authortadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-03-16 00:23:43 +0000
committertadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-03-16 00:23:43 +0000
commit6125552c27b40a8da9e162af2655feca82ac16d3 (patch)
tree8f77bc1b34603f4ce939aa4b5a77f5e8303b7df4 /gc.c
parent2694b2f937681526550b8aabf798f033fa557049 (diff)
both complex and rational are now builtin classes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/gc.c b/gc.c
index 22f2327416..f54048718f 100644
--- a/gc.c
+++ b/gc.c
@@ -127,6 +127,8 @@ typedef struct RVALUE {
struct RFile file;
struct RNode node;
struct RMatch match;
+ struct RRational rational;
+ struct RComplex complex;
} as;
#ifdef GC_DEBUG
char *file;
@@ -1128,6 +1130,16 @@ gc_mark_children(VALUE ptr, int lev)
}
break;
+ case T_RATIONAL:
+ gc_mark(obj->as.rational.num, lev);
+ gc_mark(obj->as.rational.den, lev);
+ break;
+
+ case T_COMPLEX:
+ gc_mark(obj->as.complex.real, lev);
+ gc_mark(obj->as.complex.image, lev);
+ break;
+
case T_STRUCT:
{
long len = RSTRUCT_LEN(obj);
@@ -1369,6 +1381,9 @@ obj_free(VALUE obj)
rb_io_fptr_finalize(RANY(obj)->as.file.fptr);
}
break;
+ case T_RATIONAL:
+ case T_COMPLEX:
+ break;
case T_ICLASS:
/* iClass shares table with the module */
break;