Avoid a crash when using external link support with certain unexpected inputs. #1200
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.
Bug/issue #, if applicable: rdar://148504975
Summary
This avoids a crash by accessing the identifier that the path hierarchy internally uses as a key rather than the identifier that's saved on the node. These should always be equal but some unexpected input can cause the node to have a different identifier than what the path hierarchy uses to find that node. The root cause of that issue still remains. This only avoids a crash that arises as a symptoms of the real issue.
Dependencies
None.
Testing
Because the root cause of this issue is still unknown, I can't provide better testing instructions than:
docc convert --enable-experimental-external-link-support
with some project that currently reproduces this crash.Checklist
It's not possible to write an automated test for this change because any inputs necessary to create a path hierarchy where a node has a different identifier than the key in the lookup would fail to construct due to this assertion:
[ ] Added testsSee above../bin/test
script and it succeeded[ ] Updated documentation if necessaryNot applicable