From 8098dd6c802db53a0e879efb7e48e75981f043d3 Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 10 Oct 2001 08:21:13 +0000 Subject: * file.c (rb_stat_clone): should copy internal data too. * numeric.c (num_clone): Numeric should not be copied by clone. * object.c (rb_obj_clone): should check immediate values. * parse.y (command): `yield' should take command_args. * parse.y (parse_quotedwords): %w(...) is not a string. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- object.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'object.c') diff --git a/object.c b/object.c index e2bc29b065..b2580d9904 100644 --- a/object.c +++ b/object.c @@ -94,6 +94,9 @@ rb_obj_clone(obj) { VALUE clone; + if (rb_special_const_p(obj)) { + rb_raise(rb_eTypeError, "can't clone %s", rb_class2name(CLASS_OF(obj))); + } clone = rb_obj_alloc(RBASIC(obj)->klass); CLONESETUP(clone,obj); if (TYPE(clone) == T_OBJECT && ROBJECT(obj)->iv_tbl) { @@ -587,10 +590,12 @@ rb_mod_cmp(mod, arg) } static VALUE -rb_mod_initialize(argc, argv) +rb_mod_initialize(argc, argv, module) int argc; VALUE *argv; + VALUE module; { + rb_mod_module_eval(0, 0, module); return Qnil; } -- cgit v1.2.3