Skip to content

Commit df3b61b

Browse files
committed
Issue#1537: Optimized find_next_token for speed.
1 parent 7f5aaf8 commit df3b61b

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

vsg/vhdlFile/utils.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ def object_value_matches(lAllObjects, iToken, oRegex):
123123

124124

125125
def is_item(lAllObjects, iToken):
126-
if type(lAllObjects[iToken]) == parser.item:
126+
if type(lAllObjects[iToken]) is parser.item:
127127
return True
128128
return False
129129

@@ -279,14 +279,20 @@ def find_earliest_occurrence_not_in_paren(lEnd, iToken, lObjects):
279279

280280

281281
def find_next_token(iToken, lObjects):
282-
for iCurrent, oToken in enumerate(lObjects[iToken::]):
283-
if type(oToken) == parser.item:
284-
return iCurrent + iToken
282+
# Cache parser.item for speed.
283+
parser_item = parser.item
284+
iLenObjects = len(lObjects)
285+
iCurrent = iToken
286+
# Iterate through to avoid slicing and enumerate() for speed.
287+
while iCurrent < iLenObjects:
288+
if type(lObjects[iCurrent]) is parser_item:
289+
return iCurrent
290+
iCurrent += 1
285291
return iToken
286292

287293

288294
def rename_this_is_item_function(oToken):
289-
return type(oToken) == parser.item
295+
return type(oToken) is parser.item
290296

291297

292298
def find_next_non_whitespace_token(iToken, lObjects):

0 commit comments

Comments
 (0)