Defer allocating symbol in IdentifierTable::createNotUniquedSymbol #1655
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.
Summary:
We currently allocate this symbol at the top of the function, before
performing potential allocations. In theory, the GC could free the newly
allocated symbol when we allocate the string.
In practice, this does not seem to be possible to trigger, because the
new entry will not pass the
isNonLazyStringPrimcheck inIdentifierTable::freeUnmarkedSymbols. The entry will either still be afree list entry, or will be zero initialized by
lookupVector_.emplace_backif it was just allocated. Either way, itwill not appear to be a "non-lazy" string primitive.
Differential Revision: D72269786