summaryrefslogtreecommitdiff
path: root/ruby.h
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-08-10 08:47:18 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-08-10 08:47:18 +0000
commitb0faee9b9cd5a747e226a2c64f33588b2b8f4e6c (patch)
treee3dcd4c31ffa63ad1e8a0bf4a88c63162002c101 /ruby.h
parent3f8dd52fe04789d5c001dc5566decf2679b58e90 (diff)
clone
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_3@512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby.h')
-rw-r--r--ruby.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/ruby.h b/ruby.h
index 2dcf8cba80..d358be8347 100644
--- a/ruby.h
+++ b/ruby.h
@@ -209,10 +209,11 @@ VALUE rb_newobj _((void));
RBASIC(obj)->flags = (t);\
if (rb_safe_level() >= 3) FL_SET(obj, FL_TAINT);\
}
-#define CLONESETUP(clone,obj) {\
+#define CLONESETUP(clone,obj) do {\
OBJSETUP(clone,rb_singleton_class_clone(RBASIC(obj)->klass),RBASIC(obj)->flags);\
rb_singleton_class_attached(RBASIC(clone)->klass, (VALUE)clone);\
-}
+ if (FL_TEST(obj, FL_EXIVAR)) rb_clone_generic_ivar((VALUE)clone,(VALUE)obj);\
+} while (0)
struct RBasic {
unsigned long flags;