From d4736bcf4d329d556f8646585abd00c9370f1300 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 3 Dec 2012 10:21:46 +0000 Subject: [PATCH] object.c: test bits at once * object.c (rb_obj_clone): test TAINT and UNTRUSTED bits at once. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- object.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/object.c b/object.c index 712d76a3df..02bbdb086b 100644 --- a/object.c +++ b/object.c @@ -296,7 +296,8 @@ rb_obj_clone(VALUE obj) if (FL_TEST(singleton, FL_SINGLETON)) { rb_singleton_class_attached(singleton, clone); } - RBASIC(clone)->flags = (RBASIC(obj)->flags | FL_TEST(clone, FL_TAINT) | FL_TEST(clone, FL_UNTRUSTED)) & ~(FL_FREEZE|FL_FINALIZE); + RBASIC(clone)->flags &= (FL_TAINT|FL_UNTRUSTED); + RBASIC(clone)->flags |= RBASIC(obj)->flags & ~(FL_FREEZE|FL_FINALIZE); init_copy(clone, obj); rb_funcall(clone, id_init_clone, 1, obj); RBASIC(clone)->flags |= RBASIC(obj)->flags & FL_FREEZE;