diff options
author | Aaron Patterson <tenderlove@ruby-lang.org> | 2019-10-14 14:52:58 -0700 |
---|---|---|
committer | Aaron Patterson <tenderlove@ruby-lang.org> | 2019-10-28 13:09:10 -0700 |
commit | 6147fa82a923e7318f493857023006801ed25eb5 (patch) | |
tree | 1b93d5b01162a5a81100a7ea7a7ff8779ecf6b83 | |
parent | bbf3de22b6654642c923884b9e186e6412f1ba6a (diff) |
Fix continuation mark / compact
-rw-r--r-- | cont.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -847,6 +847,9 @@ cont_compact(void *ptr) { rb_context_t *cont = ptr; + if (cont->self) { + cont->self = rb_gc_location(cont->self); + } cont->value = rb_gc_location(cont->value); rb_execution_context_update(&cont->saved_ec); } @@ -857,6 +860,9 @@ cont_mark(void *ptr) rb_context_t *cont = ptr; RUBY_MARK_ENTER("cont"); + if (cont->self) { + rb_gc_mark_movable(cont->self); + } rb_gc_mark_movable(cont->value); rb_execution_context_mark(&cont->saved_ec); |