aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--class.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index cfcf7a7a00..16d8f35a0e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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]
diff --git a/class.c b/class.c
index 42c27b5f32..73e7003d6a 100644
--- a/class.c
+++ b/class.c
@@ -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,