diff --git a/ChangeLog b/ChangeLog index 70e15d14e7..1d546a921b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon Jun 29 14:50:08 2015 Shugo Maeda + + * eval.c (add_activated_refinement): should not include the original + class. + Mon Jun 29 12:09:10 2015 SHIBATA Hiroshi * README.md: tweak styles. [fix GH-945][ci skip] Patch by @bryndyment diff --git a/eval.c b/eval.c index c3c9383a4f..3cc9a2efe9 100644 --- a/eval.c +++ b/eval.c @@ -1274,7 +1274,7 @@ add_activated_refinement(VALUE activated_refinements, c = iclass = rb_include_class_new(refinement, superclass); RCLASS_REFINED_CLASS(c) = klass; refinement = RCLASS_SUPER(refinement); - while (refinement) { + while (refinement && refinement != klass) { FL_SET(refinement, RMODULE_IS_OVERLAID); c = RCLASS_SET_SUPER(c, rb_include_class_new(refinement, RCLASS_SUPER(c))); RCLASS_REFINED_CLASS(c) = klass;