diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | class.c | 2 |
2 files changed, 5 insertions, 1 deletions
@@ -1,3 +1,7 @@ +Fri Mar 6 22:50:36 2015 Koichi Sasada <ko1@atdot.net> + + * class.c (rb_prepend_module): need a WB for klass -> origin. + Fri Mar 6 20:18:38 2015 Koichi Sasada <ko1@atdot.net> * fix namespace issue on singleton class expressions. [Bug #10943] @@ -939,7 +939,7 @@ rb_prepend_module(VALUE klass, VALUE module) OBJ_WB_UNPROTECT(origin); /* TODO: conservative shading. Need more survey. */ RCLASS_SET_SUPER(origin, RCLASS_SUPER(klass)); RCLASS_SET_SUPER(klass, origin); - RCLASS_ORIGIN(klass) = origin; + RB_OBJ_WRITE(klass, &RCLASS_ORIGIN(klass), origin); RCLASS_M_TBL(origin) = RCLASS_M_TBL(klass); RCLASS_M_TBL_INIT(klass); st_foreach(RCLASS_M_TBL(origin), move_refined_method, |