summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-10-12 22:38:59 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-10-12 22:38:59 +0900
commita1027812bd2b7b8032922dcfc70155d5a7b97e29 (patch)
tree976760fabeaaf83d9a08de59b61b7727ffec9f54
parent3c8f0ac14b27371c94536e8cd7e1b6ee3d060c56 (diff)
downloadmruby-a1027812bd2b7b8032922dcfc70155d5a7b97e29.tar.gz
mruby-a1027812bd2b7b8032922dcfc70155d5a7b97e29.zip
error.c: small refactoring regarding #2485
-rw-r--r--src/error.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/error.c b/src/error.c
index b2ae38295..5fa872c9b 100644
--- a/src/error.c
+++ b/src/error.c
@@ -25,17 +25,26 @@ exc_mesg_set(mrb_state *mrb, struct RException *exc, mrb_value mesg)
exc->mesg = RSTRING(mesg);
mrb_field_write_barrier_value(mrb, (struct RBasic*)exc, mesg);
}
- else if (!mrb_nil_p(mesg)) {
+ else {
exc->flags &= ~MRB_EXC_MESG_STRING_FLAG;
- mrb_obj_iv_set(mrb, (struct RObject*)exc, mrb_intern_lit(mrb, "mesg"), mesg);
+ if (mrb_nil_p(mesg)) {
+ exc->mesg = 0;
+ }
+ else {
+ mrb_obj_iv_set(mrb, (struct RObject*)exc, MRB_SYM(mesg), mesg);
+ }
}
}
static mrb_value
exc_mesg_get(mrb_state *mrb, struct RException *exc)
{
- return (exc->flags & MRB_EXC_MESG_STRING_FLAG) != 0
- ? mrb_obj_value(exc->mesg) : mrb_obj_iv_get(mrb, (struct RObject*)exc, mrb_intern_lit(mrb, "mesg"));
+ if ((exc->flags & MRB_EXC_MESG_STRING_FLAG) != 0) {
+ return mrb_obj_value(exc->mesg);
+ }
+ else {
+ return mrb_obj_iv_get(mrb, (struct RObject*)exc, MRB_SYM(mesg));
+ }
}
MRB_API mrb_value