From ca64478089a6c43f56eef1d11a0ed8ac2d402f73 Mon Sep 17 00:00:00 2001 From: nari Date: Fri, 28 May 2010 11:13:42 +0000 Subject: * gc.c : use simple lazy sweep algorithm for response performance gain. See [ruby-dev:41067]. * object.c: FL_MARK of some objects by lazy sweep is copied when RVALUE is cloned. These objects are not marked in the mark phase. So delete FL_MARK. * class.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- class.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'class.c') diff --git a/class.c b/class.c index c586f7aa2c..5ce450f7ae 100644 --- a/class.c +++ b/class.c @@ -202,7 +202,7 @@ rb_singleton_class_clone(VALUE obj) else { struct clone_method_data data; /* copy singleton(unnamed) class */ - VALUE clone = class_alloc(RBASIC(klass)->flags, 0); + VALUE clone = class_alloc((RBASIC(klass)->flags & ~(FL_MARK)), 0); if (BUILTIN_TYPE(obj) == T_CLASS) { RBASIC(clone)->klass = (VALUE)clone; -- cgit v1.2.3