GitHub

@@ -1397,8 +1397,8 @@ find_class_sym(mrb_state *mrb, struct RClass *outer, struct RClass *c)

13971397

return arg.sym;

13981398

}

139913991400-

static struct RClass*

1401-

outer_class(mrb_state *mrb, struct RClass *c)

1400+

MRB_API struct RClass*

1401+

mrb_class_outer(mrb_state *mrb, struct RClass *c)

14021402

{

14031403

mrb_value ov = mrb_obj_iv_get(mrb, (struct RObject*)c, MRB_SYM(__outer__));

14041404

if (mrb_nil_p(ov)) return NULL;

@@ -1420,10 +1420,10 @@ detect_outer_loop(mrb_state *mrb, struct RClass *c)

1420142014211421

for (;;) {

14221422

if (h == NULL) return FALSE;

1423-

h = outer_class(mrb, h);

1423+

h = mrb_class_outer(mrb, h);

14241424

if (h == NULL) return FALSE;

1425-

h = outer_class(mrb, h);

1426-

t = outer_class(mrb, t);

1425+

h = mrb_class_outer(mrb, h);

1426+

t = mrb_class_outer(mrb, t);

14271427

if (t == h) return TRUE;

14281428

}

14291429

}

@@ -1432,7 +1432,7 @@ mrb_value

14321432

mrb_class_find_path(mrb_state *mrb, struct RClass *c)

14331433

{

14341434

if (detect_outer_loop(mrb, c)) return mrb_nil_value();

1435-

struct RClass *outer = outer_class(mrb, c);

1435+

struct RClass *outer = mrb_class_outer(mrb, c);

14361436

if (outer == NULL) return mrb_nil_value();

1437143714381438

mrb_sym name = find_class_sym(mrb, outer, c);

Read the original on github.com ↗