sv_clear: with zero SvREFCNT, call sv_free2, not sv_free #22843
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.
Towards the bottom of
Perl_sv_clear, there is a region described as being* unrolled SvREFCNT_dec and sv_free2 follows: */. This was originally accurate when introduced in 5239d5c but the definitions ofPerl_sv_free,Perl_sv_free2, andSvREFCNT_decwere updated in 75a9bf9 and this region of code didn't get updated to match.I'm unsure of how to best refactor this code region, but right now the call to
sv_free(sv)ultimately boils down to a call tosv_free2, so this commit just goes there directly.