YJIT: Fix BorrowMutError on GC.compact #7176
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Follows up #7151 and #7164.
#7164 downgraded mut borrow of a block to (non-mut) borrow for
target.get_blockid()
, buttarget.set_iseq()
needed to mut borrow it. So a block shouldn't be borrowed at all when callingtarget.set_iseq
.We could achieve this by cloning a vector of rc and then dropping the block. This addresses the following error:
https://github.com/ruby/ruby/actions/runs/3979122841/jobs/6821344008