Skip to content

Commit b5e646d

Browse files
committed
address CR
1 parent b8920ed commit b5e646d

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

lib/Runtime/Language/DynamicProfileInfo.cpp

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,20 @@ namespace Js
476476
}
477477
}
478478

479+
CallbackInfoList::EditingIterator TryFindCallbackInfoIterator(CallbackInfoList * list, ProfileId callSiteId)
480+
{
481+
CallbackInfoList::EditingIterator iter = list->GetEditingIterator();
482+
while (iter.Next())
483+
{
484+
if (iter.Data()->callSiteId == callSiteId)
485+
{
486+
return iter;
487+
}
488+
}
489+
490+
return iter;
491+
}
492+
479493
CallbackInfo * DynamicProfileInfo::FindCallbackInfo(FunctionBody * funcBody, ProfileId callSiteId)
480494
{
481495
CallbackInfoList * list = funcBody->GetCallbackInfoList();
@@ -484,14 +498,11 @@ namespace Js
484498
return nullptr;
485499
}
486500

487-
FOREACH_SLIST_ENTRY(Field(CallbackInfo *), callbackInfo, list)
501+
CallbackInfoList::EditingIterator iter = TryFindCallbackInfoIterator(list, callSiteId);
502+
if (iter.IsValid())
488503
{
489-
if (callbackInfo->callSiteId == callSiteId)
490-
{
491-
return callbackInfo;
492-
}
504+
return iter.Data();
493505
}
494-
NEXT_SLIST_ENTRY;
495506

496507
return nullptr;
497508
}
@@ -506,14 +517,10 @@ namespace Js
506517
funcBody->SetCallbackInfoList(list);
507518
}
508519

509-
CallbackInfoList::EditingIterator iter = list->GetEditingIterator();
510-
while (iter.Next())
520+
CallbackInfoList::EditingIterator iter = TryFindCallbackInfoIterator(list, callSiteId);
521+
if (iter.IsValid())
511522
{
512-
Field(CallbackInfo*) callbackInfo = iter.Data();
513-
if (callbackInfo->callSiteId == callSiteId)
514-
{
515-
return callbackInfo;
516-
}
523+
return iter.Data();
517524
}
518525

519526
// Callsite is not already in the list, so add it to the end.

0 commit comments

Comments
 (0)