summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-06-23 15:27:46 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-06-23 15:27:46 +0000
commit80831f0e1193e432a465be23650f3717f628496d (patch)
treefd45afe0af273e324d98d583f6620bbb21e89ba3 /eval.c
parent12ac28e2a54a059ebf2eb1ea776d38799f0bc321 (diff)
merge revision(s) r46313: [Backport #9896]
* eval.c (rb_using_refinement): add write-barriers for cref->nd_refinements. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/eval.c b/eval.c
index d4dcaa1111..c077f79ecd 100644
--- a/eval.c
+++ b/eval.c
@@ -1098,11 +1098,11 @@ rb_using_refinement(NODE *cref, VALUE klass, VALUE module)
Check_Type(klass, T_CLASS);
Check_Type(module, T_MODULE);
if (NIL_P(cref->nd_refinements)) {
- cref->nd_refinements = hidden_identity_hash_new();
+ RB_OBJ_WRITE(cref, &cref->nd_refinements, hidden_identity_hash_new());
}
else {
if (cref->flags & NODE_FL_CREF_OMOD_SHARED) {
- cref->nd_refinements = rb_hash_dup(cref->nd_refinements);
+ RB_OBJ_WRITE(cref, &cref->nd_refinements, rb_hash_dup(cref->nd_refinements));
cref->flags &= ~NODE_FL_CREF_OMOD_SHARED;
}
if (!NIL_P(c = rb_hash_lookup(cref->nd_refinements, klass))) {