Skip to content

Commit f5bc82f

Browse files
committed
mruby-method (method_to_s): avoid origin class like Object(Object)
1 parent b52870b commit f5bc82f

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

mrbgems/mruby-method/src/method.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,6 @@ method_to_s(mrb_state *mrb, mrb_value self)
380380
mrb_value klass = mrb_iv_get(mrb, self, MRB_SYM(_klass));
381381
mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
382382
mrb_value str = mrb_str_new_lit(mrb, "#<");
383-
struct RClass *rklass;
384383

385384
mrb_str_cat_cstr(mrb, str, mrb_obj_classname(mrb, self));
386385
mrb_str_cat_lit(mrb, str, ": ");
@@ -394,14 +393,15 @@ method_to_s(mrb_state *mrb, mrb_value self)
394393
}
395394
}
396395

397-
rklass = mrb_class_ptr(klass);
398-
if (mrb_class_ptr(owner) == rklass) {
396+
struct RClass *ok = mrb_class_ptr(owner);
397+
struct RClass *rk = mrb_class_ptr(klass);
398+
struct RClass *rklass = mrb_class_real(rk); /* skip internal class */
399+
if (ok == rk || ok == rklass) {
399400
mrb_str_concat(mrb, str, owner);
400401
mrb_str_cat_lit(mrb, str, "#");
401402
mrb_str_concat(mrb, str, name);
402403
}
403404
else {
404-
rklass = mrb_class_real(rklass); /* skip internal class */
405405
mrb_str_concat(mrb, str, mrb_obj_value(rklass));
406406
mrb_str_cat_lit(mrb, str, "(");
407407
mrb_str_concat(mrb, str, owner);

0 commit comments

Comments
 (0)