diff options
| author | nagachika <nagachika@ruby-lang.org> | 2023-07-17 17:21:51 +0900 |
|---|---|---|
| committer | nagachika <nagachika@ruby-lang.org> | 2023-07-17 17:21:51 +0900 |
| commit | 5fbd72764e020c6b165604e9cdcc932a1c5d2a93 (patch) | |
| tree | 98f4e99390ef6f1bbde17eef4e0db28e237e3737 /test/ruby | |
| parent | 5fc9825ccf651664c547b1822c7f753464e27f06 (diff) | |
merge revision(s) 31e67a476f2262e01a0829e8ab5e6d8a97e0724e,0b95cbcbde8875effdbcbb676cb0a7f751a1d4c1: [Backport #19601]
YJIT: Fix false object collection when setting ivar
Previously, setinstancevariable could generate code that calls
`rb_ensure_iv_list_size()` without first updating `cfp->sp`. This means
in the event that a GC start from within said routine the top few
objects would not be marked, causing them to be falsly collected.
Call `jit_prepare_routine_call()` first.
[Bug #19601]
---
bootstraptest/test_yjit.rb | 20 ++++++++++++++++++++
yjit/src/codegen.rs | 5 +++++
2 files changed, 25 insertions(+)
YJIT: Remove duplicate `asm.spill_temps()`
`jit_prepare_routine_call()` calls it, and there is another call above on line 2302.
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
---
yjit/src/codegen.rs | 1 -
1 file changed, 1 deletion(-)
Diffstat (limited to 'test/ruby')
0 files changed, 0 insertions, 0 deletions
