Call dup on input to #fragment before preprocessing #128
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.
The introduction of this #preprocess method in
bf0d753 broke sanitisation of frozen
strings (for example, hash keys). The reason this was not a problem
previously is that after #preprocess is called, the input is only ever
used by interpolation into another string, so it never matters that the
object is itself frozen.
This patch has the input stringified and duplicated at the start of
preprocessing. I suspect that was already the intent, since this line
of code already stringified and duplicated it, but then threw the
result away. The only actual change here is assigning the result to the
input variable instead.
This commit also adds a test to ensure that #fragment always works on a
frozen input string.