diff options
author | Alan Wu <XrXr@users.noreply.github.com> | 2024-04-22 14:33:34 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-22 18:33:34 +0000 |
commit | aeb08bc8a71006b63a6588ef5129b7723c8219fc (patch) | |
tree | 2563b237cc301900a55ad63c0d251923c33198af /test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock | |
parent | 1bb7638e7a864db9b635c5d41f18653e8451dbc7 (diff) |
YJIT: Fix String#setbyte crashing for converted arguments
Previously, passing objects that respond to #to_int to `String#setbyte`
resulted in a crash when compiled by YJIT. This was due to the lazily
pushed frame from rb_yjit_lazy_push_frame() lingering and not being
popped by an exception as expected.
The fix is to ensure that `ec->cfp` is restored to before the lazy frame
push in case the method call for conversion succeeds. Right now, this is
only for conversion to integers.
Found running `ruby/spec`.
* clarify comment
We just need to make sure `ec->cfp` is always preserved and this can
convert without rising when `raise` is true.
Diffstat (limited to 'test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock')
0 files changed, 0 insertions, 0 deletions