mirror of
https://github.com/atom/atom.git
synced 2026-01-23 13:58:08 -05:00
Only call _.isEqual when needed
Invert the logic to return if all are equal so we can fall through on the first false call so only the minimum isEqual calls are made. Also perform the boolean check first instead of last since it cheaper than a Point comparison. This showed up in the profile when profiling moving the cursor.
This commit is contained in:
@@ -185,13 +185,11 @@ class DisplayBufferMarker
|
||||
newTailScreenPosition = @getTailScreenPosition()
|
||||
isValid = @isValid()
|
||||
|
||||
changed = false
|
||||
changed = true unless _.isEqual(newHeadBufferPosition, @oldHeadBufferPosition)
|
||||
changed = true unless _.isEqual(newHeadScreenPosition, @oldHeadScreenPosition)
|
||||
changed = true unless _.isEqual(newTailBufferPosition, @oldTailBufferPosition)
|
||||
changed = true unless _.isEqual(newTailScreenPosition, @oldTailScreenPosition)
|
||||
changed = true unless _.isEqual(isValid, @wasValid)
|
||||
return unless changed
|
||||
return if _.isEqual(isValid, @wasValid) and
|
||||
_.isEqual(newHeadBufferPosition, @oldHeadBufferPosition) and
|
||||
_.isEqual(newHeadScreenPosition, @oldHeadScreenPosition) and
|
||||
_.isEqual(newTailBufferPosition, @oldTailBufferPosition) and
|
||||
_.isEqual(newTailScreenPosition, @oldTailScreenPosition)
|
||||
|
||||
@emit 'changed', {
|
||||
@oldHeadScreenPosition, newHeadScreenPosition,
|
||||
|
||||
Reference in New Issue
Block a user