Permalink
Browse files

Raise special Exception when exception class is redefined; fix #3493

  • Loading branch information...
matz committed Mar 10, 2017
1 parent c6e5659 commit e8f09f93930e0c99769e4e4ded2342638ac3d5e5
Showing with 8 additions and 2 deletions.
  1. +8 −2 src/class.c
View
@@ -330,8 +330,14 @@ mrb_class_get(mrb_state *mrb, const char *name)
MRB_API struct RClass *
mrb_exc_get(mrb_state *mrb, const char *name)
{
struct RClass *exc = mrb_class_get_under(mrb, mrb->object_class, name);
struct RClass *e = exc;
struct RClass *exc, *e;
mrb_value c = mrb_const_get(mrb, mrb_obj_value(mrb->object_class),
mrb_intern_cstr(mrb, name));
if (mrb_type(c) != MRB_TT_CLASS) {
mrb_raise(mrb, mrb->eException_class, "exception corrupted");
}
exc = e = mrb_class_ptr(c);
while (e) {
if (e == mrb->eException_class)

0 comments on commit e8f09f9

Please sign in to comment.