diff options
Diffstat (limited to 'ruby.h')
-rw-r--r-- | ruby.h | 5 |
1 files changed, 2 insertions, 3 deletions
@@ -217,13 +217,12 @@ char *rb_str2cstr _((VALUE,int*)); VALUE rb_newobj _((void)); #define NEWOBJ(obj,type) type *obj = (type*)rb_newobj() #define OBJSETUP(obj,c,t) {\ - RBASIC(obj)->klass = (c);\ RBASIC(obj)->flags = (t);\ + RBASIC(obj)->klass = (c);\ if (rb_safe_level() >= 3) FL_SET(obj, FL_TAINT);\ } #define CLONESETUP(clone,obj) do {\ - RBASIC(clone)->flags = (RBASIC(obj)->flags);\ - RBASIC(obj)->klass = (rb_singleton_class_clone(RBASIC(obj)->klass));\ + 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) |