diff options
author | Alan Wu <[email protected]> | 2022-11-10 17:24:10 -0500 |
---|---|---|
committer | Alan Wu <[email protected]> | 2022-11-11 11:13:07 -0500 |
commit | 04c5adf80697a310f12f473b5ef772d234576f2b (patch) | |
tree | 3b454a97a678f5237bc0b4c4467b5f809fa2c7c4 /lib/net/http.rb | |
parent | 90bbc891b192c30432c517ccb279ed687bb2d0b4 (diff) |
YJIT: Fix staying in invalidated code after proc calls
Previously, there is no instruction boundary patch point after
the call to a non-leaf C function we generate for
OPTIMIZED_METHOD_TYPE_CALL. This meant that if code GC is triggered
while inside the C function, we would keep running invalidated code when
we return from the C function. This had the effect of running
stale branch stubs, jumping to bad code, etc.
Use jit_prepare_routine_call() to make sure we exit from the invalidated
region as soon as possible after the C call in case of invalidation.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/6711
Diffstat (limited to 'lib/net/http.rb')
0 files changed, 0 insertions, 0 deletions