Rémi Bernon (@rbernon) commented about dlls/ntdll/heap.c:
subheap = block_get_subheap( heap, block );
if (!validate_used_block( heap, subheap, block )) return FALSE;
if (block_get_type( block ) != BLOCK_TYPE_DEAD)
{
WARN("heap %p, block %p: invalid block type %#x\n", heap, block, block_get_type( block ));
return FALSE;
}
}
end = i;
for (; i < MAX_FREE_PENDING; i++)
{
if ((block = heap->pending_free[i]))
{
WARN("heap %p: non-NULL delayed freed block %p at slot %u (list ends at slot %u)\n", heap, block, i, end);
I'm not sure the detailed message with `end` variable is very useful. Just do `if (TRACE_ON(heap)) heap_dump( heap );` instead.