-
Notifications
You must be signed in to change notification settings - Fork 305
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Minor code efficiency issue, use of LineIsMultiLine() #1125
Comments
I originally introduced Most of the time though, I find it best to write algorithms that natively work irrespective of the fact that the buffer contains a single line or multiple lines, without resorting to using At the end of the day, the unit tests will tell you if you can shortcut and improve the code. |
🎉 This issue was addressed in 2047, which has now been successfully released in |
🎉 |
While working on #1108, while proposing to have
InsertLineAbove()
utilizeGetBeginningOfLinePos()
since it performs the exact same loop backward through the buffer searching for a\n
, I was almost going to leave the original reference toLineIsMultiLine()
inInsertLineAbove()
, though it also occurs inGetBeginningOfLinePos()
.However when I look at the code for
LineIsMultiLine()
it is itself a search through the buffer for a\n
. Statistically, ifLineIsMultiLine()
finds a\n
then there is now going to be Ta + Tb time spent searching for\n
instead of just Tb time spent, where Ta is time spent to find the first\n
in the buffer and Tb is time spent to find a\n
under the specific scenario of the function. In the case where no\n
is found,LineIsMultiLine()
will touch every character in the buffer to confirm that, where as in the specific scenario of the function will result in a variable number characters being checked, from 0 through all of them, depending on the scenario.Is there a reason for this approach?
Is there a downside to removing the use of
LineIsMultiLine()
when making changes to such functions?The text was updated successfully, but these errors were encountered: