static VALUE exc_exception(VALUE self, SEL sel, int argc, VALUE *argv) { VALUE exc; if (argc == 0) return self; if (argc == 1 && self == argv[0]) return self; exc = rb_obj_clone(self); exc_initialize(exc, 0, argc, argv); return exc; }
static VALUE exc_exception(int argc, VALUE *argv, VALUE self) { VALUE exc; if (argc == 0) return self; if (argc == 1 && self == argv[0]) return self; exc = rb_obj_clone(self); exc_initialize(argc, argv, exc); return exc; }
static mrb_value exc_exception(mrb_state *mrb, mrb_value self) { mrb_value exc; mrb_value *argv; int argc; mrb_get_args(mrb, "*", &argv, &argc); if (argc == 0) return self; if (argc == 1 && mrb_obj_equal(mrb, self, argv[0])) return self; exc = mrb_obj_clone(mrb, self); exc_initialize(mrb, exc); return exc; }