summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-03-13 09:04:32 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-03-13 09:04:32 +0000
commit056f219ecaa8daa50a77d28bed49fb5a4bf75928 (patch)
tree331b0dad1cf037e44c5fd9841d02145a86d3494c /gc.c
parent107ead2b961452a8df2d0b63eda34b45d9b4ef75 (diff)
1.1b9_02
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gc.c b/gc.c
index fe1e4942f8..edf06d313a 100644
--- a/gc.c
+++ b/gc.c
@@ -1016,6 +1016,10 @@ id2ref(obj, id)
INT ptr = NUM2INT(id);
if (FIXNUM_P(ptr)) return (VALUE)ptr;
+ if (ptr == TRUE) return TRUE;
+ if (ptr == FALSE) return FALSE;
+ if (ptr == Qnil) return Qnil;
+
if (!looks_pointerp(ptr)) {
IndexError("0x%x is not the id value", ptr);
}
@@ -1045,7 +1049,7 @@ Init_GC()
rb_define_module_function(mObSpace, "remove_finalizer", rm_final, 1);
rb_define_module_function(mObSpace, "finalizers", finals, 0);
rb_define_module_function(mObSpace, "call_finalizer", call_final, 1);
- rb_define_module_function(mObSpace, "id2ref", id2ref, 1);
+ rb_define_module_function(mObSpace, "_id2ref", id2ref, 1);
rb_global_variable(&finalizers);
finalizers = ary_new();