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.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/1894#note_20235