[RTL] Use LastEntryInSegment to speed up RtlpFindAndCommitPages. CORE-14588

This commit is contained in:
Thomas Faber 2020-02-02 12:54:19 +01:00
parent 771f7d3f95
commit 10d23614d3

View file

@ -665,6 +665,10 @@ RtlpFindAndCommitPages(PHEAP Heap,
/* Calculate first and last entries */
FirstEntry = (PHEAP_ENTRY)Address;
LastEntry = Segment->LastEntryInSegment;
if (!(LastEntry->Flags & HEAP_ENTRY_LAST_ENTRY) ||
LastEntry + LastEntry->Size != FirstEntry)
{
/* Go through the entries to find the last one */
if (PreviousUcr)
LastEntry = (PHEAP_ENTRY)((ULONG_PTR)PreviousUcr->Address + PreviousUcr->Size);
@ -676,6 +680,7 @@ RtlpFindAndCommitPages(PHEAP Heap,
ASSERT(LastEntry->Size != 0);
LastEntry += LastEntry->Size;
}
}
ASSERT((LastEntry + LastEntry->Size) == FirstEntry);
/* Unmark it as a last entry */