diff options
author | eileencodes <[email protected]> | 2023-06-02 15:26:02 -0400 |
---|---|---|
committer | Aaron Patterson <[email protected]> | 2023-06-05 11:11:12 -0700 |
commit | 135a5eb716399443da58db342de6093c91b5ad62 (patch) | |
tree | 2785a4d6471f09cf4f6a2dc1d4308e8e751fa0ec | |
parent | 40f090f4339820d19da8ecdf81a981489c22eb57 (diff) |
Add missing write barrier
We were missing the write barrier for class_value to cref. This should
fix the segv we were seeing in http://ci.rvm.jp/logfiles/brlog.trunk-gc-asserts.20230601-165052
Co-authored-by: Aaron Patterson <[email protected]>
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/7900
-rw-r--r-- | vm_insnhelper.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 5ef1ad10de..cbcd51cce9 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -1519,6 +1519,7 @@ update_classvariable_cache(const rb_iseq_t *iseq, VALUE klass, ID id, const rb_c RUBY_ASSERT(BUILTIN_TYPE((VALUE)cref) == T_IMEMO && IMEMO_TYPE_P(cref, imemo_cref)); RB_OBJ_WRITTEN(iseq, Qundef, ent->cref); RB_OBJ_WRITTEN(iseq, Qundef, ent->class_value); + RB_OBJ_WRITTEN(ent->class_value, Qundef, ent->cref); return cvar_value; } |