Exemple #1
0
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;
}
Exemple #2
0
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;
}
Exemple #3
0
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;
}