Commit 2930bc50 authored by Masaki Muranaka's avatar Masaki Muranaka

Use mrb_true_or_false_value() / in exc_equal().

parent b3373d7e
...@@ -160,25 +160,29 @@ exc_equal(mrb_state *mrb, mrb_value exc) ...@@ -160,25 +160,29 @@ exc_equal(mrb_state *mrb, mrb_value exc)
{ {
mrb_value obj; mrb_value obj;
mrb_value mesg; mrb_value mesg;
mrb_bool equal_p;
mrb_sym id_mesg = mrb_intern(mrb, "mesg"); mrb_sym id_mesg = mrb_intern(mrb, "mesg");
mrb_get_args(mrb, "o", &obj); mrb_get_args(mrb, "o", &obj);
if (mrb_obj_equal(mrb, exc, obj)) return mrb_true_value(); if (mrb_obj_equal(mrb, exc, obj)) {
equal_p = 1;
if (mrb_obj_class(mrb, exc) != mrb_obj_class(mrb, obj)) {
if (mrb_respond_to(mrb, obj, mrb_intern(mrb, "message"))) {
mesg = mrb_funcall(mrb, obj, "message", 0);
}
else
return mrb_false_value();
} }
else { else {
mesg = mrb_attr_get(mrb, obj, id_mesg); if (mrb_obj_class(mrb, exc) != mrb_obj_class(mrb, obj)) {
if (mrb_respond_to(mrb, obj, mrb_intern(mrb, "message"))) {
mesg = mrb_funcall(mrb, obj, "message", 0);
}
else
return mrb_false_value();
}
else {
mesg = mrb_attr_get(mrb, obj, id_mesg);
}
equal_p = mrb_equal(mrb, mrb_attr_get(mrb, exc, id_mesg), mesg);
} }
if (!mrb_equal(mrb, mrb_attr_get(mrb, exc, id_mesg), mesg)) return mrb_true_or_false_value(equal_p);
return mrb_false_value();
return mrb_true_value();
} }
static void static void
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment