summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authorSamuel Williams <samuel.williams@oriontransfer.co.nz>2020-09-15 14:19:54 +1200
committerSamuel Williams <samuel.williams@oriontransfer.co.nz>2020-09-15 22:53:08 +1200
commita9b2a96c5cfa5ab36c89ffae82e28eb733e36542 (patch)
treef74064a5819affdff30a9309910e69b41e7b8a5d /gc.c
parentb2b855f486dd0b1b11baaea4943116a9d2d7e867 (diff)
Fix incorrect initialization of `rb_io_t::self`.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3542
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gc.c b/gc.c
index 69cc2ba361..cf42d32c97 100644
--- a/gc.c
+++ b/gc.c
@@ -5636,6 +5636,7 @@ gc_mark_children(rb_objspace_t *objspace, VALUE obj)
case T_FILE:
if (any->as.file.fptr) {
+ gc_mark(objspace, any->as.file.fptr->self);
gc_mark(objspace, any->as.file.fptr->pathv);
gc_mark(objspace, any->as.file.fptr->tied_io_for_writing);
gc_mark(objspace, any->as.file.fptr->writeconv_asciicompat);
@@ -8555,6 +8556,7 @@ gc_update_object_references(rb_objspace_t *objspace, VALUE obj)
case T_FILE:
if (any->as.file.fptr) {
+ UPDATE_IF_MOVED(objspace, any->as.file.fptr->self);
UPDATE_IF_MOVED(objspace, any->as.file.fptr->pathv);
UPDATE_IF_MOVED(objspace, any->as.file.fptr->tied_io_for_writing);
UPDATE_IF_MOVED(objspace, any->as.file.fptr->writeconv_asciicompat);