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.
This fixes two crashes I observed in the skin editor:
The ThreadedDeclarationTreePopulator has public functions used by SkinEditorTreeView that eventually call ThrowIfCancellationRequested(), which is only valid to do when called by the worker thread. I added a check that simply returns from that function when it's not called on the worker thread.
GlobalModelSkinCache().renameSkin() appears to have a side effect that clears out the _skin member variable. This variable was referenced afterwards causing a crash. I reworked that code to cache the name and restore the _skin member afterwards.
This fixes the crashes, but it's just the tip of the iceberg when it comes to the usability of the skin editor (at least on Linux).