Avoid crashing when loading client plugins from the same path #2308
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.
When
DYLD_(FRAMEWORK|LIBRARY)_PATH
is set,dlopen
will first check if the basename of the provided path is within any of its search paths. Thus it's possible that only a single library is loaded for each toolchain, rather than a separate like we expect. The paths should be equal in this case, since the client plugin is loaded based on the path ofsourcekitd.framework
(and we should only have one for the same reason). Allow this case and just avoid re-initializing.