diff options
| author | Satoshi Tagomori <s-tagomori@sakura.ad.jp> | 2025-11-26 00:36:55 +0900 |
|---|---|---|
| committer | Satoshi Tagomori <tagomoris@gmail.com> | 2025-11-26 10:10:47 +0900 |
| commit | e84b91a292f3cd94fdf5f2ef548bf2377b1cf537 (patch) | |
| tree | e7b7d71d6403a8709bab91a269698cea53da3fb8 /imemo.c | |
| parent | 0654bcd4f809e97bca4a099fa78db9990fa5a4ae (diff) | |
Box: mark/move Box object referred via ENV/rb_env_t
Diffstat (limited to 'imemo.c')
| -rw-r--r-- | imemo.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -426,6 +426,13 @@ rb_imemo_mark_and_move(VALUE obj, bool reference_updating) rb_gc_mark_and_move_ptr(&env->iseq); + if (VM_ENV_LOCAL_P(env->ep) && VM_ENV_BOXED_P(env->ep)) { + const rb_box_t *box = VM_ENV_BOX(env->ep); + if (BOX_USER_P(box)) { + rb_gc_mark_and_move((VALUE *)&box->box_object); + } + } + if (reference_updating) { ((VALUE *)env->ep)[VM_ENV_DATA_INDEX_ENV] = rb_gc_location(env->ep[VM_ENV_DATA_INDEX_ENV]); } |
