Fix search/replace preview freeze - #4
Open
urpflanze wants to merge 1 commit into
Open
Conversation
The preview could freeze when the replacement text still contained the searched pattern, for example replacing "6_" with "6_1". The loop could keep matching text that had just been inserted, so it did not reliably make progress through the string. This change makes the replacement continue on the remaining unprocessed part of the name instead of searching the full updated string again.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 a freeze in search/replace preview when the replacement text
still contains the searched pattern.
Example:
In the failing case, 3ds Max could freeze for several minutes even with
as few as 5 selected items. When the freeze ended, the preview still did
not show the expected renamed result.
The previous loop could keep matching text that had just been inserted,
so it did not reliably progress through the string.
The fix makes the replacement continue on the remaining unprocessed
part of the text instead of searching the full updated string again.