summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro Matz Matsumoto <[email protected]>2012-11-03 08:28:26 +0900
committerYukihiro Matz Matsumoto <[email protected]>2012-11-03 08:28:26 +0900
commit2e0aa29296a4ab8ef370bd64b311fd0b86b748d1 (patch)
tree7b38a995cc15c4683199b76b32c95cd68e219e54
parent9f0c59e06876fb16539c79f867504da04d2eb5ce (diff)
downloadmruby-2e0aa29296a4ab8ef370bd64b311fd0b86b748d1.tar.gz
mruby-2e0aa29296a4ab8ef370bd64b311fd0b86b748d1.zip
cosmetic changes in mrb_obj_clone()
-rw-r--r--src/kernel.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/kernel.c b/src/kernel.c
index 050dd73bc..2d1c731a2 100644
--- a/src/kernel.c
+++ b/src/kernel.c
@@ -345,16 +345,18 @@ init_copy(mrb_state *mrb, mrb_value dest, mrb_value obj)
mrb_value
mrb_obj_clone(mrb_state *mrb, mrb_value self)
{
- struct RObject *clone;
+ struct RObject *p;
+ mrb_value clone;
if (mrb_special_const_p(self)) {
mrb_raisef(mrb, E_TYPE_ERROR, "can't clone %s", mrb_obj_classname(mrb, self));
}
- clone = (struct RObject*)mrb_obj_alloc(mrb, mrb_type(self), mrb_obj_class(mrb, self));
- clone->c = mrb_singleton_class_clone(mrb, self);
- init_copy(mrb, mrb_obj_value(clone), self);
+ p = (struct RObject*)mrb_obj_alloc(mrb, mrb_type(self), mrb_obj_class(mrb, self));
+ p->c = mrb_singleton_class_clone(mrb, self);
+ clone = mrb_obj_value(p);
+ init_copy(mrb, clone, self);
- return mrb_obj_value(clone);
+ return clone;
}
/* 15.3.1.3.9 */